[PATCH] patch: allow copy information to be passed in
Augie Fackler
raf at durin42.com
Mon Jun 27 12:54:47 EDT 2016
Sure, queued
> On Jun 27, 2016, at 9:11 AM, Henrik Stuart <henriks+hg at unity3d.com> wrote:
>
> # HG changeset patch
> # User Henrik Stuart <henriks at unity3d.com>
> # Date 1467022278 -7200
> # Mon Jun 27 12:11:18 2016 +0200
> # Node ID de6b1dadad4feafa702bf9eef71699d37edd254f
> # Parent b62bce819d0cafcd94e3838e97062b42c9cb13b2
> patch: allow copy information to be passed in
>
> When displaying patches from graphical tools where you can browse through
> individual files, with diff being called separately on each, recomputing the
> limits of file copy history can become rather expensive on large repositories.
> Instead, we can compute it once and pass it in for subsequent calls.
>
> diff --git a/mercurial/patch.py b/mercurial/patch.py
> --- a/mercurial/patch.py
> +++ b/mercurial/patch.py
> @@ -2184,7 +2184,7 @@
> return mdiff.diffopts(**buildopts)
>
> def diff(repo, node1=None, node2=None, match=None, changes=None, opts=None,
> - losedatafn=None, prefix='', relroot=''):
> + losedatafn=None, prefix='', relroot='', copy=None):
> '''yields diff of changes to files between two nodes, or node and
> working directory.
>
> @@ -2203,7 +2203,10 @@
> display (used for subrepos).
>
> relroot, if not empty, must be normalized with a trailing /. Any match
> - patterns that fall outside it will be ignored.'''
> + patterns that fall outside it will be ignored.
> +
> + copy, if not empty, should contain mappings {dst at y: src at x} of copy
> + information.'''
>
> if opts is None:
> opts = mdiff.defaultopts
> @@ -2250,9 +2253,10 @@
> hexfunc = short
> revs = [hexfunc(node) for node in [ctx1.node(), ctx2.node()] if node]
>
> - copy = {}
> - if opts.git or opts.upgrade:
> - copy = copies.pathcopies(ctx1, ctx2, match=match)
> + if copy is None:
> + copy = {}
> + if opts.git or opts.upgrade:
> + copy = copies.pathcopies(ctx1, ctx2, match=match)
>
> if relroot is not None:
> if not relfiltered:
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://www.mercurial-scm.org/pipermail/mercurial-devel/attachments/20160627/7307e1f1/attachment.sig>
More information about the Mercurial-devel
mailing list