match: normpath the ignore source when expanding the 'subinclude' kind
authorMatt Harbison <matt_harbison@yahoo.com>
Wed, 27 May 2015 13:28:16 -0400
changeset 25301 caaf4045eca8
parent 25300 678d0bfdd31a
child 25302 bcb17d7dbec2
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.
mercurial/match.py
--- a/mercurial/match.py	Sat May 23 21:18:47 2015 -0700
+++ b/mercurial/match.py	Wed May 27 13:28:16 2015 -0400
@@ -50,7 +50,7 @@
 
     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)