--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-bisect2.t Sat Aug 14 02:55:54 2010 +0200
@@ -0,0 +1,391 @@
+# The tests in test-bisect are done on a linear history. Here the
+# following repository history is used for testing:
+#
+# 17
+# |
+# 18 16
+# \ /
+# 15
+# / \
+# / \
+# 10 13
+# / \ |
+# / \ | 14
+# 7 6 9 12 /
+# \ / \ | |/
+# 4 \ | 11
+# \ \ | /
+# 3 5 | /
+# \ / |/
+# 2 8
+# \ /
+# 1
+# |
+# 0
+
+
+ $ set -e
+
+init
+
+ $ hg init
+
+committing changes
+
+ $ echo > a
+ $ echo '0' >> a
+ $ hg add a
+ $ hg ci -m "0" -d "0 0"
+ $ echo '1' >> a
+ $ hg ci -m "1" -d "1 0"
+ $ echo '2' >> a
+ $ hg ci -m "2" -d "2 0"
+ $ echo '3' >> a
+ $ hg ci -m "3" -d "3 0"
+ $ echo '4' >> a
+ $ hg ci -m "4" -d "4 0"
+
+create branch
+
+ $ hg up -r 2
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ echo '5' >> b
+ $ hg add b
+ $ hg ci -m "5" -d "5 0"
+ created new head
+
+merge
+
+ $ hg merge
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg ci -m "merge 4,5" -d "6 0"
+
+create branch
+
+ $ hg up -r 4
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ echo '7' > c
+ $ hg add c
+ $ hg ci -m "7" -d "7 0"
+ created new head
+
+create branch
+
+ $ hg up -r 1
+ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ echo '8' > d
+ $ hg add d
+ $ hg ci -m "8" -d "8 0"
+ created new head
+ $ echo '9' >> d
+ $ hg ci -m "9" -d "9 0"
+
+merge
+
+ $ hg merge -r 6
+ 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg ci -m "merge 6,9" -d "10 0"
+
+create branch
+
+ $ hg up -r 8
+ 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ echo '11' > e
+ $ hg add e
+ $ hg ci -m "11" -d "11 0"
+ created new head
+ $ echo '12' >> e
+ $ hg ci -m "12" -d "12 0"
+ $ echo '13' >> e
+ $ hg ci -m "13" -d "13 0"
+
+create branch
+
+ $ hg up -r 11
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ echo '14' > f
+ $ hg add f
+ $ hg ci -m "14" -d "14 0"
+ created new head
+
+merge
+
+ $ hg up -r 13 -C
+ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg merge -r 10
+ 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg ci -m "merge 10,13" -d "15 0"
+ $ echo '16' >> e
+ $ hg ci -m "16" -d "16 0"
+ $ echo '17' >> e
+ $ hg ci -m "17" -d "17 0"
+
+create branch
+
+ $ hg up -r 15
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ echo '18' >> e
+ $ hg ci -m "18" -d "18 0"
+ created new head
+
+log
+
+ $ hg log
+ changeset: 18:d42e18c7bc9b
+ tag: tip
+ parent: 15:857b178a7cf3
+ user: test
+ date: Thu Jan 01 00:00:18 1970 +0000
+ summary: 18
+
+ changeset: 17:228c06deef46
+ user: test
+ date: Thu Jan 01 00:00:17 1970 +0000
+ summary: 17
+
+ changeset: 16:609d82a7ebae
+ user: test
+ date: Thu Jan 01 00:00:16 1970 +0000
+ summary: 16
+
+ changeset: 15:857b178a7cf3
+ parent: 13:b0a32c86eb31
+ parent: 10:429fcd26f52d
+ user: test
+ date: Thu Jan 01 00:00:15 1970 +0000
+ summary: merge 10,13
+
+ changeset: 14:faa450606157
+ parent: 11:82ca6f06eccd
+ user: test
+ date: Thu Jan 01 00:00:14 1970 +0000
+ summary: 14
+
+ changeset: 13:b0a32c86eb31
+ user: test
+ date: Thu Jan 01 00:00:13 1970 +0000
+ summary: 13
+
+ changeset: 12:9f259202bbe7
+ user: test
+ date: Thu Jan 01 00:00:12 1970 +0000
+ summary: 12
+
+ changeset: 11:82ca6f06eccd
+ parent: 8:dab8161ac8fc
+ user: test
+ date: Thu Jan 01 00:00:11 1970 +0000
+ summary: 11
+
+ changeset: 10:429fcd26f52d
+ parent: 9:3c77083deb4a
+ parent: 6:a214d5d3811a
+ user: test
+ date: Thu Jan 01 00:00:10 1970 +0000
+ summary: merge 6,9
+
+ changeset: 9:3c77083deb4a
+ user: test
+ date: Thu Jan 01 00:00:09 1970 +0000
+ summary: 9
+
+ changeset: 8:dab8161ac8fc
+ parent: 1:4ca5088da217
+ user: test
+ date: Thu Jan 01 00:00:08 1970 +0000
+ summary: 8
+
+ changeset: 7:50c76098bbf2
+ parent: 4:5c668c22234f
+ user: test
+ date: Thu Jan 01 00:00:07 1970 +0000
+ summary: 7
+
+ changeset: 6:a214d5d3811a
+ parent: 5:385a529b6670
+ parent: 4:5c668c22234f
+ user: test
+ date: Thu Jan 01 00:00:06 1970 +0000
+ summary: merge 4,5
+
+ changeset: 5:385a529b6670
+ parent: 2:051e12f87bf1
+ user: test
+ date: Thu Jan 01 00:00:05 1970 +0000
+ summary: 5
+
+ changeset: 4:5c668c22234f
+ user: test
+ date: Thu Jan 01 00:00:04 1970 +0000
+ summary: 4
+
+ changeset: 3:0950834f0a9c
+ user: test
+ date: Thu Jan 01 00:00:03 1970 +0000
+ summary: 3
+
+ changeset: 2:051e12f87bf1
+ user: test
+ date: Thu Jan 01 00:00:02 1970 +0000
+ summary: 2
+
+ changeset: 1:4ca5088da217
+ user: test
+ date: Thu Jan 01 00:00:01 1970 +0000
+ summary: 1
+
+ changeset: 0:33b1f9bc8bc5
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: 0
+
+
+hg up -C
+
+ $ hg up -C
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+complex bisect test 1 # first bad rev is 9
+
+ $ hg bisect -r
+ $ hg bisect -g 0
+ $ hg bisect -b 17 # -> update to rev 6
+ Testing changeset 6:a214d5d3811a (15 changesets remaining, ~3 tests)
+ 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
+ $ hg bisect -g # -> update to rev 13
+ Testing changeset 13:b0a32c86eb31 (9 changesets remaining, ~3 tests)
+ 3 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg bisect -s # -> update to rev 10
+ Testing changeset 10:429fcd26f52d (9 changesets remaining, ~3 tests)
+ 3 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg bisect -b # -> update to rev 8
+ Testing changeset 8:dab8161ac8fc (3 changesets remaining, ~1 tests)
+ 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg bisect -g # -> update to rev 9
+ Testing changeset 9:3c77083deb4a (2 changesets remaining, ~1 tests)
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg bisect -b
+ The first bad revision is:
+ changeset: 9:3c77083deb4a
+ user: test
+ date: Thu Jan 01 00:00:09 1970 +0000
+ summary: 9
+
+
+complex bisect test 2 # first good rev is 13
+
+ $ hg bisect -r
+ $ hg bisect -g 18
+ $ hg bisect -b 1 # -> update to rev 6
+ Testing changeset 6:a214d5d3811a (13 changesets remaining, ~3 tests)
+ 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg bisect -s # -> update to rev 10
+ Testing changeset 10:429fcd26f52d (13 changesets remaining, ~3 tests)
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg bisect -b # -> update to rev 12
+ Testing changeset 12:9f259202bbe7 (5 changesets remaining, ~2 tests)
+ 3 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg bisect -b # -> update to rev 13
+ Testing changeset 13:b0a32c86eb31 (3 changesets remaining, ~1 tests)
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg bisect -g
+ The first good revision is:
+ changeset: 13:b0a32c86eb31
+ user: test
+ date: Thu Jan 01 00:00:13 1970 +0000
+ summary: 13
+
+
+complex bisect test 3
+
+first bad rev is 15
+10,9,13 are skipped an might be the first bad revisions as well
+
+ $ hg bisect -r
+ $ hg bisect -g 1
+ $ hg bisect -b 16 # -> update to rev 6
+ Testing changeset 6:a214d5d3811a (13 changesets remaining, ~3 tests)
+ 2 files updated, 0 files merged, 2 files removed, 0 files unresolved
+ $ hg bisect -g # -> update to rev 13
+ Testing changeset 13:b0a32c86eb31 (8 changesets remaining, ~3 tests)
+ 3 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg bisect -s # -> update to rev 10
+ Testing changeset 10:429fcd26f52d (8 changesets remaining, ~3 tests)
+ 3 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg bisect -s # -> update to rev 12
+ Testing changeset 12:9f259202bbe7 (8 changesets remaining, ~3 tests)
+ 3 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg bisect -g # -> update to rev 9
+ Testing changeset 9:3c77083deb4a (5 changesets remaining, ~2 tests)
+ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg bisect -s # -> update to rev 15
+ Testing changeset 15:857b178a7cf3 (5 changesets remaining, ~2 tests)
+ 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg bisect -b
+ Due to skipped revisions, the first bad revision could be any of:
+ changeset: 9:3c77083deb4a
+ user: test
+ date: Thu Jan 01 00:00:09 1970 +0000
+ summary: 9
+
+ changeset: 10:429fcd26f52d
+ parent: 9:3c77083deb4a
+ parent: 6:a214d5d3811a
+ user: test
+ date: Thu Jan 01 00:00:10 1970 +0000
+ summary: merge 6,9
+
+ changeset: 13:b0a32c86eb31
+ user: test
+ date: Thu Jan 01 00:00:13 1970 +0000
+ summary: 13
+
+ changeset: 15:857b178a7cf3
+ parent: 13:b0a32c86eb31
+ parent: 10:429fcd26f52d
+ user: test
+ date: Thu Jan 01 00:00:15 1970 +0000
+ summary: merge 10,13
+
+
+complex bisect test 4
+
+first good revision is 17
+15,16 are skipped an might be the first good revisions as well
+
+ $ hg bisect -r
+ $ hg bisect -g 17
+ $ hg bisect -b 8 # -> update to rev 10
+ Testing changeset 13:b0a32c86eb31 (8 changesets remaining, ~3 tests)
+ 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg bisect -b # -> update to rev 13
+ Testing changeset 10:429fcd26f52d (5 changesets remaining, ~2 tests)
+ 3 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg bisect -b # -> update to rev 15
+ Testing changeset 15:857b178a7cf3 (3 changesets remaining, ~1 tests)
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg bisect -s # -> update to rev 16
+ Testing changeset 16:609d82a7ebae (3 changesets remaining, ~1 tests)
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg bisect -s
+ Due to skipped revisions, the first good revision could be any of:
+ changeset: 15:857b178a7cf3
+ parent: 13:b0a32c86eb31
+ parent: 10:429fcd26f52d
+ user: test
+ date: Thu Jan 01 00:00:15 1970 +0000
+ summary: merge 10,13
+
+ changeset: 16:609d82a7ebae
+ user: test
+ date: Thu Jan 01 00:00:16 1970 +0000
+ summary: 16
+
+ changeset: 17:228c06deef46
+ user: test
+ date: Thu Jan 01 00:00:17 1970 +0000
+ summary: 17
+