Code

bisect: use && to connect statements that are deferred with eval.
authorJon Seymour <jon.seymour@gmail.com>
Thu, 4 Aug 2011 12:00:58 +0000 (22:00 +1000)
committerJunio C Hamano <gitster@pobox.com>
Thu, 4 Aug 2011 22:33:34 +0000 (15:33 -0700)
Christian Couder pointed out that the existing eval strategy
swallows an initial non-zero return. Using && to connect
the statements should fix this.

Signed-off-by: Jon Seymour <jon.seymour@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-bisect.sh

index 20f6dd5625160f65cde186bb17138c6ffbc1ff12..a44ffe1eada2890f8473fb479be41135a4cd07fc 100755 (executable)
@@ -86,7 +86,7 @@ bisect_start() {
                0) state='bad' ; bad_seen=1 ;;
                *) state='good' ;;
                esac
-               eval="$eval bisect_write '$state' '$rev' 'nolog'"
+               eval="$eval bisect_write '$state' '$rev' 'nolog' &&"
                shift
                ;;
            esac
@@ -145,7 +145,7 @@ bisect_start() {
        #
        echo "$start_head" >"$GIT_DIR/BISECT_START" &&
        git rev-parse --sq-quote "$@" >"$GIT_DIR/BISECT_NAMES" &&
-       eval "$eval" &&
+       eval "$eval true" &&
        echo "git bisect start$orig_args" >>"$GIT_DIR/BISECT_LOG" || exit
        #
        # Check if we can proceed to the next bisect state.