Commit e4c7b33747 ("bisect--helper: reimplement `bisect_skip` shell function in C", 2021-02-03), as part of the shell-to-C conversion, forgot to read the 'terms' file (.git/BISECT_TERMS) during the new 'bisect skip' command implementation. As a result, the 'bisect skip' command will use the default 'bad'/'good' terms. If the bisection terms have been set to non-default values (for example by the 'bisect start' command), then the 'bisect skip' command will fail. In order to correct this problem, we insert a call to the get_terms() function, which reads the non-default terms from that file (if set), in the '--bisect-skip' command implementation of 'bisect--helper'. Signed-off-by: Ramsay Jones <ramsay@xxxxxxxxxxxxxxxxxxxx> --- Hi Junio, This patch was created directly on top of commit e4c7b33747 and tested with the test from Bagas Sanjaya [1] (ie the second version of the stand-alone test file t6031-*.sh, rather than the newer patch that adds the test to t6030-*.sh). I applied this patch to the current master branch (@311531c9de55) and it also passed the test in [1]. [I created the patch on top of e4c7b33747 so that it would, hopefully, easily backport to the relevant 'maint' branches, should you feel the need. ;-) ] At this point, I would normally have looked to see if there were other examples of forgetting to call 'get_terms()' (which seems possible). However, I am a bit busy, so I will have to add that to my TODO list ... :( ATB, Ramsay Jones [1] https://lore.kernel.org/git/20210421040808.14185-1-bagasdotme@xxxxxxxxx/ builtin/bisect--helper.c | 1 + 1 file changed, 1 insertion(+) diff --git a/builtin/bisect--helper.c b/builtin/bisect--helper.c index 7ad9b4d55b..49c07f0710 100644 --- a/builtin/bisect--helper.c +++ b/builtin/bisect--helper.c @@ -1129,6 +1129,7 @@ int cmd_bisect__helper(int argc, const char **argv, const char *prefix) break; case BISECT_SKIP: set_terms(&terms, "bad", "good"); + get_terms(&terms); res = bisect_skip(&terms, argv, argc); break; default: -- 2.31.0