[PATCH] copies: document hack for adding '' to set of dirs

Martin von Zweigbergk martinvonz at google.com
Fri May 22 16:09:01 CDT 2015


+CC:durham

Your patch reminded me of this. Should technically be applied after your
patches, since I've referred to your function name.

On Fri, May 22, 2015 at 2:07 PM Martin von Zweigbergk <martinvonz at google.com>
wrote:

> # HG changeset patch
> # User Martin von Zweigbergk <martinvonz at google.com>
> # Date 1432328524 25200
> #      Fri May 22 14:02:04 2015 -0700
> # Node ID d25b0f4d22dd272f7f0921345d2979b3ab221836
> # Parent  f2b98dacb37ddd6713b11a1a871fcdbbc5fd8bb2
> copies: document hack for adding '' to set of dirs
>
> The root directory is not normally added to 'dirs' instances (although
> I think it should be). In copies.mergecopies, we call dirname() to get
> the directory of a path and then check for containment in the 'dirs'
> instances ('d1' and 'd2'). In order to easily handle files in the root
> directory, '/' is added to d1/d2. This results in the empty string
> being added to the sets, since what comes before the slash in '/' is
> an empty string. This seems less than obvious, so let's document it.
>
> diff --git a/mercurial/copies.py b/mercurial/copies.py
> --- a/mercurial/copies.py
> +++ b/mercurial/copies.py
> @@ -376,6 +376,7 @@
>
>      # generate a directory move map
>      d1, d2 = c1.dirs(), c2.dirs()
> +    # Hack for adding '', which is not otherwise added, to d1 and d2
>      d1.addpath('/')
>      d2.addpath('/')
>      invalid = set()
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20150522/85d0769b/attachment.html>


More information about the Mercurial-devel mailing list