From 42ba5ee776c00369ca72b76537ae622611a7b545 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 7 May 2008 23:54:28 +0200 Subject: [PATCH] bisect: print an error message when "git rev-list --bisect-vars" fails Before this patch no error was printed when "git rev-list --bisect-vars" failed. This can happen when bad and good revs are mistaken. This patch prints an error message on stderr that describe the likely failure cause. Signed-off-by: Christian Couder Signed-off-by: Junio C Hamano --- git-bisect.sh | 19 +++++++++++++++++-- t/t6030-bisect-porcelain.sh | 7 +++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/git-bisect.sh b/git-bisect.sh index 54bfd71dad..b1800edaf7 100755 --- a/git-bisect.sh +++ b/git-bisect.sh @@ -220,18 +220,33 @@ bisect_auto_next() { bisect_next_check && bisect_next || : } +eval_rev_list() { + _eval="$1" + + eval $_eval + res=$? + + if [ $res -ne 0 ]; then + echo >&2 "'git rev-list --bisect-vars' failed:" + echo >&2 "maybe you mistake good and bad revs?" + exit $res + fi + + return $res +} + filter_skipped() { _eval="$1" _skip="$2" if [ -z "$_skip" ]; then - eval $_eval + eval_rev_list "$_eval" return fi # Let's parse the output of: # "git rev-list --bisect-vars --bisect-all ..." - eval $_eval | while read hash line + eval_rev_list "$_eval" | while read hash line do case "$VARS,$FOUND,$TRIED,$hash" in # We display some vars. diff --git a/t/t6030-bisect-porcelain.sh b/t/t6030-bisect-porcelain.sh index 05f1e15c34..933f567983 100755 --- a/t/t6030-bisect-porcelain.sh +++ b/t/t6030-bisect-porcelain.sh @@ -302,6 +302,13 @@ test_expect_success 'bisect refuses to start if branch new-bisect exists' ' git branch -d new-bisect ' +test_expect_success 'bisect errors out if bad and good are mistaken' ' + git bisect reset && + test_must_fail git bisect start $HASH2 $HASH4 2> rev_list_error && + grep "mistake good and bad" rev_list_error && + git bisect reset +' + # # test_done -- 2.11.4.GIT