# HG changeset patch # User Benoit Boissinot # Date 1160646026 -7200 # Node ID ef8307585b418431c9d77d1b17a61290c305ce71 # Parent 41741218504d19b7613502b322d13ff6a2b39bae nodesbetween: fix a bug with duplicate heads diff --git a/mercurial/revlog.py b/mercurial/revlog.py --- a/mercurial/revlog.py +++ b/mercurial/revlog.py @@ -599,12 +599,12 @@ class revlog(object): 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: diff --git a/tests/test-bundle-r b/tests/test-bundle-r --- a/tests/test-bundle-r +++ b/tests/test-bundle-r @@ -72,6 +72,10 @@ hg -R test bundle --base 2 -r tip test-b 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