]> git.ipfire.org Git - thirdparty/git.git/commitdiff
bisect run: fix the error message
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Thu, 12 Jan 2023 15:19:12 +0000 (16:19 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 13 Jan 2023 22:17:14 +0000 (14:17 -0800)
In d1bbbe45df8 (bisect--helper: reimplement `bisect_run` shell function
in C, 2021-09-13), we ported the `bisect run` subcommand to C, including
the part that prints out an error message when the implicit `git bisect
bad` or `git bisect good` failed.

However, the error message was supposed to print out whether the state
was "good" or "bad", but used a bogus (because non-populated) `args`
variable for it. This was fixed in [1], but as of [2] (when
`bisect--helper` was changed to the present `bisect-state') the error
message still talks about implementation details that should not
concern end users.

Fix that, and add a regression test to ensure that the intended form of
the error message.

1. 80c2e9657f2 (bisect--helper: report actual bisect_state() argument
   on error, 2022-01-18
2. f37d0bdd42d (bisect: fix output regressions in v2.30.0, 2022-11-10)

Helped-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/bisect.c
t/t6030-bisect-porcelain.sh

index 9fc8db06944f067abc3fecbcc6bd0e0cf2a796c1..0786ebf4012e292a1fbe6ac536ef34df89ae4f45 100644 (file)
@@ -1292,7 +1292,7 @@ static int bisect_run(struct bisect_terms *terms, int argc, const char **argv)
                        puts(_("bisect found first bad commit"));
                        res = BISECT_OK;
                } else if (res) {
-                       error(_("bisect run failed: 'bisect-state %s'"
+                       error(_("bisect run failed: 'git bisect %s'"
                                " exited with error code %d"), new_state, res);
                } else {
                        continue;
index 9e56b42b5da77765e17fa91ee05149aa61f6859e..0a62ea2b3ce57b8c1ccb7bc90269bfe699992bc7 100755 (executable)
@@ -1221,4 +1221,14 @@ test_expect_success 'bisect state output with bad commit' '
        grep -F "waiting for good commit(s), bad commit known" output
 '
 
+test_expect_success 'verify correct error message' '
+       git bisect reset &&
+       git bisect start $HASH4 $HASH1 &&
+       write_script test_script.sh <<-\EOF &&
+       rm .git/BISECT*
+       EOF
+       test_must_fail git bisect run ./test_script.sh 2>error &&
+       grep "git bisect good.*exited with error code" error
+'
+
 test_done