ignore: fix path concatenation of .hgignore on Windows stable
authorYuya Nishihara <yuya@tcha.org>
Mon, 27 Jul 2015 22:14:40 +0900
branchstable
changeset 25875 511e1949d557
parent 25874 3e84f40232c7
child 25876 415709a43e54
ignore: fix path concatenation of .hgignore on Windows Since 3de48ff62733, .hgignore is ignored on Windows because a pat may have a drive letter, but pathutil.join is posixpath.join. "z:\foo\bar/z:\foo\bar\.hgignore" Instead, this patch uses os.path.join() and util.localpath() to process both parts as file-system paths. Maybe we can remove os.path.join() at dirstate._ignore because 'include:' is resolved relative to repo root? It was introduced by a04c7b74b3d5.
mercurial/match.py
--- a/mercurial/match.py	Sun Jul 26 09:28:52 2015 -0300
+++ b/mercurial/match.py	Mon Jul 27 22:14:40 2015 +0900
@@ -5,7 +5,7 @@
 # This software may be used and distributed according to the terms of the
 # GNU General Public License version 2 or any later version.
 
-import copy, re
+import copy, os, re
 import util, pathutil
 from i18n import _
 
@@ -289,7 +289,7 @@
                 continue
             elif kind == 'include':
                 try:
-                    fullpath = pathutil.join(root, pat)
+                    fullpath = os.path.join(root, util.localpath(pat))
                     includepats = readpatternfile(fullpath, self._warn)
                     for k, p, source in self._normalize(includepats, default,
                                                         root, cwd, auditor):