Fix dirstate.walkhelper removing first char of nd when self.root == '/'.
authorGil <gil@fooplanet.com>
Tue, 25 Jul 2006 11:09:17 -0700
changeset 2670 93eb49419760
parent 2669 b013c9daae69
child 2671 82864a2eb709
Fix dirstate.walkhelper removing first char of nd when self.root == '/'.
mercurial/dirstate.py
--- a/mercurial/dirstate.py	Tue Jul 25 17:54:58 2006 +0200
+++ b/mercurial/dirstate.py	Tue Jul 25 11:09:17 2006 -0700
@@ -347,12 +347,16 @@
         # recursion free walker, faster than os.walk.
         def findfiles(s):
             work = [s]
+            # self.root may end with a path separator when self.root == '/'
+            root_subtract_len = len(self.root)
+            if not self.root.endswith('/'):
+                root_subtract_len += 1
             while work:
                 top = work.pop()
                 names = os.listdir(top)
                 names.sort()
                 # nd is the top of the repository dir tree
-                nd = util.normpath(top[len(self.root) + 1:])
+                nd = util.normpath(top[root_subtract_len:])
                 if nd == '.':
                     nd = ''
                 else: