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

Matt Harbison mharbison at attotech.com
Wed May 27 14:20:47 CDT 2015


# 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

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)
 


More information about the Mercurial-devel mailing list