Circumvent removal of valid bisect candidates due to previously skipped ones
authorBernhard Leiner <bleiner@gmail.com>
Sat, 27 Dec 2008 19:05:26 +0100
changeset 7557 21233de9c053
parent 7552 a9221c7f51a4
child 7558 dc211ad8d681
Circumvent removal of valid bisect candidates due to previously skipped ones As reported in issue 1445: A valid candidate revision for a bisect test is not considered for testing due to its skipped ancestor. If this revision is the only untested one left an assertion error occurs.
mercurial/hbisect.py
tests/test-bisect
tests/test-bisect.out
--- a/mercurial/hbisect.py	Wed Dec 31 15:04:18 2008 +0100
+++ b/mercurial/hbisect.py	Sat Dec 27 19:05:26 2008 +0100
@@ -102,7 +102,7 @@
             if value == perfect: # found a perfect candidate? quit early
                 break
 
-        if y < perfect: # all downhill from here?
+        if y < perfect and rev not in skip: # all downhill from here?
             for c in children.get(rev, []):
                 poison[c] = True # poison children
             continue
--- a/tests/test-bisect	Wed Dec 31 15:04:18 2008 +0100
+++ b/tests/test-bisect	Sat Dec 27 19:05:26 2008 +0100
@@ -72,3 +72,13 @@
 echo % test no action
 hg bisect -r
 hg bisect || echo failure
+
+echo % reproduce AssertionError, issue1445
+hg bisect -r
+hg bisect -b 6
+hg bisect -g 0
+hg bisect -s
+hg bisect -s
+hg bisect -s
+hg bisect -s 
+hg bisect -g
--- a/tests/test-bisect.out	Wed Dec 31 15:04:18 2008 +0100
+++ b/tests/test-bisect.out	Sat Dec 27 19:05:26 2008 +0100
@@ -286,3 +286,20 @@
 % test no action
 abort: cannot bisect (no known good revisions)
 failure
+% reproduce AssertionError, issue1445
+Testing changeset 3:b53bea5e2fcb (6 changesets remaining, ~2 tests)
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+Testing changeset 2:db07c04beaca (6 changesets remaining, ~2 tests)
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+Testing changeset 4:9b2ba8336a65 (6 changesets remaining, ~2 tests)
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+Testing changeset 1:5cd978ea5149 (6 changesets remaining, ~2 tests)
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+Testing changeset 5:7874a09ea728 (6 changesets remaining, ~2 tests)
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+The first bad revision is:
+changeset:   6:a3d5c6fdf0d3
+user:        test
+date:        Thu Jan 01 00:00:06 1970 +0000
+summary:     msg 6
+