tests/test-bisect2
changeset 6859 9369095779a1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-bisect2	Sat Aug 02 22:11:22 2008 +0200
@@ -0,0 +1,153 @@
+#!/bin/sh
+
+# 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
+
+echo % init
+hg init
+
+echo % 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
+echo '5' >> b
+hg add b
+hg ci -m "5" -d "5 0"
+
+# merge
+hg merge
+hg ci -m "merge 4,5" -d "6 0"
+
+# create branch
+hg up -r 4
+echo '7' > c
+hg add c
+hg ci -m "7" -d "7 0"
+
+# create branch
+hg up -r 1
+echo '8' > d
+hg add d
+hg ci -m "8" -d "8 0"
+echo '9' >> d
+hg ci -m "9" -d "9 0"
+
+# merge
+hg merge -r 6
+hg ci -m "merge 6,9" -d "10 0"
+
+# create branch
+hg up -r 8
+echo '11' > e
+hg add e
+hg ci -m "11" -d "11 0"
+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
+echo '14' > f
+hg add f
+hg ci -m "14" -d "14 0"
+
+# merge
+hg up -r 13 -C
+hg merge -r 10
+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
+echo '18' >> e
+hg ci -m "18" -d "18 0"
+
+
+echo % log
+hg log
+
+echo % hg up -C
+hg up -C
+
+echo % complex bisect test 1  # first bad rev is 9
+hg bisect -r
+hg bisect -g 0
+hg bisect -b 17   # -> update to rev 6
+hg bisect -g      # -> update to rev 13
+hg bisect -s      # -> update to rev 10
+hg bisect -b      # -> update to rev 8
+hg bisect -g      # -> update to rev 9
+hg bisect -b
+
+echo % complex bisect test 2  # first good rev is 13
+hg bisect -r
+hg bisect -g 18
+hg bisect -b 1    # -> update to rev 6
+hg bisect -s      # -> update to rev 10
+hg bisect -b      # -> update to rev 12
+hg bisect -b      # -> update to rev 13
+hg bisect -g
+
+echo % 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
+hg bisect -g      # -> update to rev 13
+hg bisect -s      # -> update to rev 10
+hg bisect -s      # -> update to rev 12
+hg bisect -g      # -> update to rev 9
+hg bisect -s      # -> update to rev 15
+hg bisect -b
+
+echo % 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
+hg bisect -b      # -> update to rev 13
+hg bisect -b      # -> update to rev 15
+hg bisect -s      # -> update to rev 16
+hg bisect -s
+