[PATCH] bisect--helper: use BISECT_TERMS in 'bisect skip' command

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux