summaryrefslogtreecommitdiff
path: root/git-bisect.sh
diff options
context:
space:
mode:
authorChristian Couder <chriscool@tuxfamily.org>2009-04-19 09:56:16 (GMT)
committerJunio C Hamano <gitster@pobox.com>2009-05-10 07:30:28 (GMT)
commit5a1d31c7e43a54c3a5275266745488de7208d871 (patch)
tree61f0dfefcd4bd2524333de52247f9d54fdc4126f /git-bisect.sh
parentef24c7ca055f03c673c2b67a3a7c92bcc32f62f0 (diff)
downloadgit-5a1d31c7e43a54c3a5275266745488de7208d871.zip
git-5a1d31c7e43a54c3a5275266745488de7208d871.tar.gz
git-5a1d31c7e43a54c3a5275266745488de7208d871.tar.bz2
bisect: use "git bisect--helper --next-exit" in "git-bisect.sh"
instead of "git bisect--helper --next-vars". Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-bisect.sh')
-rwxr-xr-xgit-bisect.sh39
1 files changed, 9 insertions, 30 deletions
diff --git a/git-bisect.sh b/git-bisect.sh
index 24712ff..e1f300b 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -279,19 +279,6 @@ bisect_auto_next() {
bisect_next_check && bisect_next || :
}
-exit_if_skipped_commits () {
- _tried=$1
- _bad=$2
- if test -n "$_tried" ; then
- echo "There are only 'skip'ped commit left to test."
- echo "The first bad commit could be any of:"
- echo "$_tried" | tr '[|]' '[\012]'
- test -n "$_bad" && echo "$_bad"
- echo "We cannot bisect more!"
- exit 2
- fi
-}
-
bisect_checkout() {
_rev="$1"
_msg="$2"
@@ -416,25 +403,17 @@ bisect_next() {
# Return now if a checkout has already been done
test "$?" -eq "1" && return
- # Get bisection information
- eval=$(eval "git bisect--helper --next-vars") &&
- eval "$eval" || exit
+ # Perform bisection computation, display and checkout
+ git bisect--helper --next-exit
+ res=$?
- if [ -z "$bisect_rev" ]; then
- # We should exit here only if the "bad"
- # commit is also a "skip" commit (see above).
- exit_if_skipped_commits "$bisect_tried"
- echo "$bad was both good and bad"
- exit 1
- fi
- if [ "$bisect_rev" = "$bad" ]; then
- exit_if_skipped_commits "$bisect_tried" "$bad"
- echo "$bisect_rev is first bad commit"
- git diff-tree --pretty $bisect_rev
- exit 0
- fi
+ # Check if we should exit because bisection is finished
+ test $res -eq 10 && exit 0
- bisect_checkout "$bisect_rev" "$bisect_nr revisions left to test after this (roughly $bisect_steps steps)"
+ # Check for an error in the bisection process
+ test $res -ne 0 && exit $res
+
+ return 0
}
bisect_visualize() {