Skip to content

Commit

Permalink
git-bisect.txt: streamline run presentation
Browse files Browse the repository at this point in the history
Streamline the presentation of "bisect run" by removing one example
which does not introduce new concepts.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Michael J Gruber authored and Junio C Hamano committed Mar 15, 2011
1 parent 87b5054 commit 9d79b7e
Showing 1 changed file with 8 additions and 26 deletions.
34 changes: 8 additions & 26 deletions Documentation/git-bisect.txt
Original file line number Diff line number Diff line change
Expand Up @@ -274,53 +274,35 @@ $ git bisect start HEAD origin -- # HEAD is bad, origin is good
$ git bisect run make test # "make test" builds and tests
------------

* Automatically bisect a broken test suite:
+
------------
$ cat ~/test.sh
#!/bin/sh
make || exit 125 # this skips broken builds
make test # "make test" runs the test suite
$ git bisect start v1.3 v1.1 -- # v1.3 is bad, v1.1 is good
$ git bisect run ~/test.sh
------------
+
Here we use a "test.sh" custom script. In this script, if "make"
fails, we skip the current commit.
+
It is safer to use a custom script outside the repository to prevent
interactions between the bisect, make and test processes and the
script.
+
"make test" should "exit 0", if the test suite passes, and
"exit 1" otherwise.

* Automatically bisect a broken test case:
+
------------
$ cat ~/test.sh
#!/bin/sh
make || exit 125 # this skips broken builds
~/check_test_case.sh # does the test case passes ?
~/check_test_case.sh # does the test case pass?
$ git bisect start HEAD HEAD~10 -- # culprit is among the last 10
$ git bisect run ~/test.sh
------------
+
Here "check_test_case.sh" should "exit 0" if the test case passes,
Here we use a "test.sh" custom script. In this script, if "make"
fails, we skip the current commit.
"check_test_case.sh" should "exit 0" if the test case passes,
and "exit 1" otherwise.
+
It is safer if both "test.sh" and "check_test_case.sh" scripts are
It is safer if both "test.sh" and "check_test_case.sh" are
outside the repository to prevent interactions between the bisect,
make and test processes and the scripts.

* Automatically bisect a broken test suite:
* Automatically bisect a broken test case:
+
------------
$ git bisect start HEAD HEAD~10 -- # culprit is among the last 10
$ git bisect run sh -c "make || exit 125; ~/check_test_case.sh"
------------
+
Does the same as the previous example, but on a single line.
This shows that you can do without a run script if you write the test
on a single line.

Author
------
Expand Down

0 comments on commit 9d79b7e

Please sign in to comment.