merge with crew.
authorVadim Gelfer <vadim.gelfer@gmail.com>
Thu, 13 Apr 2006 12:44:40 -0700
changeset 2062 5460f0196f77
parent 2061 5987c1eac2ce (diff)
parent 2060 676f5fd84a94 (current diff)
child 2063 f1fda71e134e
merge with crew.
mercurial/dirstate.py
--- a/mercurial/dirstate.py
+++ b/mercurial/dirstate.py
@@ -342,7 +342,13 @@ class dirstate(object):
                 names.sort()
                 # nd is the top of the repository dir tree
                 nd = util.normpath(top[len(self.root) + 1:])
-                if nd == '.': nd = ''
+                if nd == '.':
+                    nd = ''
+                else:
+                    hg = bisect.bisect_left(names, '.hg')
+                    if hg < len(names) and names[hg] == '.hg':
+                        if os.path.isdir(os.path.join(top, '.hg')):
+                            continue
                 for f in names:
                     np = util.pconvert(os.path.join(nd, f))
                     if seen(np):
new file mode 100755
--- /dev/null
+++ b/tests/test-nested-repo
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+hg init a
+cd a
+hg init b
+echo x > b/x
+echo '# should print nothing'
+hg st
+echo '# should print ? b/x'
+hg st b/x
+
+hg add b/x
+
+echo '# should print A b/x'
+hg st
+echo '# should forget b/x'
+hg forget
+echo '# should print nothing'
+hg st b
new file mode 100644
--- /dev/null
+++ b/tests/test-nested-repo.out
@@ -0,0 +1,8 @@
+# should print nothing
+# should print ? b/x
+? b/x
+# should print A b/x
+A b/x
+# should forget b/x
+forgetting b/x
+# should print nothing