[PATCH STABLE] dirstate: make sure rootdir ends with directory separator (issue4557)
Yuya Nishihara
yuya at tcha.org
Thu Mar 5 16:00:18 UTC 2015
# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1425568462 -32400
# Fri Mar 06 00:14:22 2015 +0900
# Branch stable
# Node ID ad75672575f0cfdba49815a3222f052a3f9de53d
# Parent ac41aa4a66ab21210fc538e9fb51c405a341b69e
dirstate: make sure rootdir ends with directory separator (issue4557)
ntpath.join() of Python 2.7.9 does not work as expected if root is a UNC path
to top of share.
This patch doesn't take care of os.altsep, '/' on Windows, because root should
be normalized by realpath().
diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py
--- a/mercurial/dirstate.py
+++ b/mercurial/dirstate.py
@@ -38,7 +38,12 @@ class dirstate(object):
self._opener = opener
self._validate = validate
self._root = root
- self._rootdir = os.path.join(root, '')
+ # ntpath.join(root, '') of Python 2.7.9 does not add sep if root is
+ # UNC path pointing to root share (issue4557)
+ if root.endswith(os.sep):
+ self._rootdir = root
+ else:
+ self._rootdir = root + os.sep
self._dirty = False
self._dirtypl = False
self._lastnormaltime = 0
More information about the Mercurial-devel
mailing list