[PATCH] match: normpath the ignore source when expanding the 'subinclude' kind

Augie Fackler raf at durin42.com
Wed May 27 14:36:17 CDT 2015


On Wed, May 27, 2015 at 03:20:47PM -0400, Matt Harbison wrote:
> # HG changeset patch
> # User Matt Harbison <matt_harbison at yahoo.com>
> # Date 1432747696 14400
> #      Wed May 27 13:28:16 2015 -0400
> # Node ID 694b522f45863a5cf7ab9e7831cba58300419503
> # Parent  83e07d0983ab226fbdb7768487688d3d94e474cb
> match: normpath the ignore source when expanding the 'subinclude' kind

Sure, queued.

>
> Windows was previously getting this test failure:
>
>   --- e:/Projects/hg/tests/test-hgignore.t
>   +++ e:/Projects/hg/tests/test-hgignore.t.err
>   @@ -230,6 +230,7 @@
>
>      $ hg status
>      ? dir1/file2
>   +  ? dir1/subdir/subfile3
>      ? dir1/subdir/subfile4
>      ? dir2/file1
>
>   @@ -241,4 +242,4 @@
>      $ echo "glob:file*2" > dir1/.hgignoretwo
>
>      $ hg status | grep file2
>   -  [1]
>   +  ? dir1/file2
>
> The problem was 'source' would be in the form "F:\test-hgignore.t\.hgignore", so
> when pathutil.dirname() split on '/', 'sourceroot' was empty.  Therefore, 'path'
> ended up being relative instead of absolute.
>
> diff --git a/mercurial/match.py b/mercurial/match.py
> --- a/mercurial/match.py
> +++ b/mercurial/match.py
> @@ -50,7 +50,7 @@ def _expandsubinclude(kindpats, root):
>
>      for kind, pat, source in kindpats:
>          if kind == 'subinclude':
> -            sourceroot = pathutil.dirname(source)
> +            sourceroot = pathutil.dirname(util.normpath(source))
>              pat = util.pconvert(pat)
>              path = pathutil.join(sourceroot, pat)
>
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> https://selenic.com/mailman/listinfo/mercurial-devel


More information about the Mercurial-devel mailing list