mercurial/dirstate.py
changeset 2670 93eb49419760
parent 2661 5c10b7ed3411
child 2671 82864a2eb709
--- a/mercurial/dirstate.py
+++ b/mercurial/dirstate.py
@@ -347,12 +347,16 @@ class dirstate(object):
         # 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: