summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Christian Couder <chriscool@tuxfamily.org>2010-02-28 23:19:09 +0100
committerLibravatar Junio C Hamano <gitster@pobox.com>2010-03-01 01:04:35 -0800
commit8f69f72fca989b3ba080aab1dc24bfd1709ce83a (patch)
treec8527e2c9fb724628b237ad9827bdba3e02a5fa3
parentdwim_ref: fix dangling symref warning (diff)
downloadtgif-8f69f72fca989b3ba080aab1dc24bfd1709ce83a.tar.xz
bisect: error out when passing bad path parameters
As reported by Mark Lodato, "git bisect", when it was started with path parameters that match no commit was kind of working without taking account of path parameters and was reporting something like: Bisecting: -1 revisions left to test after this (roughly 0 steps) It is more correct and safer to just error out in this case, before displaying the revisions left, so this patch does just that. Note that this bug is very old, it exists at least since v1.5.5. And it is possible to detect that case earlier in the bisect algorithm, but it is not clear that it would be an improvement to error out earlier, on the contrary it may change the behavior of "git rev-list --bisect-all" for example, which is currently correct. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--bisect.c6
-rwxr-xr-xt/t6030-bisect-porcelain.sh5
2 files changed, 11 insertions, 0 deletions
diff --git a/bisect.c b/bisect.c
index dc18db8af9..88881f7b6e 100644
--- a/bisect.c
+++ b/bisect.c
@@ -986,6 +986,12 @@ int bisect_next_all(const char *prefix)
exit(1);
}
+ if (!all) {
+ fprintf(stderr, "No testable commit found.\n"
+ "Maybe you started with bad path parameters?\n");
+ exit(4);
+ }
+
bisect_rev = revs.commits->item->object.sha1;
memcpy(bisect_rev_hex, sha1_to_hex(bisect_rev), 41);
diff --git a/t/t6030-bisect-porcelain.sh b/t/t6030-bisect-porcelain.sh
index def397c53a..dc9e8d030a 100755
--- a/t/t6030-bisect-porcelain.sh
+++ b/t/t6030-bisect-porcelain.sh
@@ -567,6 +567,11 @@ test_expect_success 'skipping away from skipped commit' '
test "$para3" = "$PARA_HASH3"
'
+test_expect_success 'erroring out when using bad path parameters' '
+ test_must_fail git bisect start $PARA_HASH7 $HASH1 -- foobar 2> error.txt &&
+ grep "bad path parameters" error.txt
+'
+
#
#
test_done