nodesbetween: fix a bug with duplicate heads
authorBenoit Boissinot <benoit.boissinot@ens-lyon.org>
Thu, 12 Oct 2006 11:40:26 +0200
changeset 3360 ef8307585b41
parent 3359 41741218504d
child 3361 bc5985d53386
nodesbetween: fix a bug with duplicate heads
mercurial/revlog.py
tests/test-bundle-r
--- a/mercurial/revlog.py	Wed Oct 11 16:56:41 2006 -0700
+++ b/mercurial/revlog.py	Thu Oct 12 11:40:26 2006 +0200
@@ -599,12 +599,12 @@
             if not heads:
                 return nonodes
             ancestors = {}
-            # Start at the top and keep marking parents until we're done.
-            nodestotag = heads[:]
             # Turn heads into a dictionary so we can remove 'fake' heads.
             # Also, later we will be using it to filter out the heads we can't
             # find from roots.
             heads = dict.fromkeys(heads, 0)
+            # Start at the top and keep marking parents until we're done.
+            nodestotag = heads.keys()
             # Remember where the top was so we can use it as a limit later.
             highestrev = max([self.rev(n) for n in nodestotag])
             while nodestotag:
--- a/tests/test-bundle-r	Wed Oct 11 16:56:41 2006 -0700
+++ b/tests/test-bundle-r	Thu Oct 12 11:40:26 2006 +0200
@@ -72,6 +72,10 @@
 hg -R test bundle --base 2 -r 7 test-bundle-branch2.hg
 hg -R test bundle --base 2 test-bundle-all.hg
 hg -R test bundle --base 3 -r tip test-bundle-should-fail.hg
+
+# issue76 msg2163
+hg -R test bundle --base 3 -r 3 -r 3 test-bundle-cset-3.hg
+
 hg clone test-2 test-9
 cd test-9
 echo % 2