git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 1/7] bisect--helper: reimplement `bisect_log` shell function in C

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Jan 18, 2021, 15:02 UTC
Message-ID
<nycvar.QRO.7.76.6.2101181555200.52@tvgsbejvaqbjf.bet>
In-Reply-To
<20201221162743.96056-2-mirucam@gmail.com>
Hi Miriam,
On Mon, 21 Dec 2020, Miriam Rubio wrote:
Show 15 quoted lines
> From: Pranit Bauva <pranit.bauva@gmail.com>
>
> Reimplement the `bisect_log()` shell function in C and also add
> `--bisect-log` subcommand to `git bisect--helper` to call it from
> git-bisect.sh .
>
> Using `--bisect-log` subcommand is a temporary measure to port shell
> function to C so as to use the existing test suite.
>
> Mentored-by: Lars Schneider <larsxschneider@gmail.com>
> Mentored-by: Christian Couder <chriscool@tuxfamily.org>
> Mentored-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
> Signed-off-by: Pranit Bauva <pranit.bauva@gmail.com>
> Signed-off-by: Tanushree Tumane <tanushreetumane@gmail.com>
> Signed-off-by: Miriam Rubio <mirucam@gmail.com>

Good. I see this was originally sent as [PATCH 20/29] in https://lore.kernel.org/git/20200120143800.900-21-mirucam@gmail.com/, but this version contains improvements:

- It returns `BISECT_FAILED` in `bisect_log()` instead of -1 (and
  `BISECT_OK` instead of 0)
- Instead of checking for `argc > 1` (which was wrong), it now verifies
  that no arguments were passed via `if (argc)`
- It exits from the shell script appropriately when the helper failed
Just one nit:
Show 10 quoted lines
> diff --git a/builtin/bisect--helper.c b/builtin/bisect--helper.c
> index 709eb713a3..1854377fa6 100644
> --- a/builtin/bisect--helper.c
> +++ b/builtin/bisect--helper.c
> @@ -938,6 +951,8 @@ int cmd_bisect__helper(int argc, const char **argv, const char *prefix)
>  			 N_("verify the next bisection state then checkout the next bisection commit"), BISECT_AUTO_NEXT),
>  		OPT_CMDMODE(0, "bisect-state", &cmdmode,
>  			 N_("mark the state of ref (or refs)"), BISECT_STATE),
> +		OPT_CMDMODE(0, "bisect-log", &cmdmode,
> +			 N_("output the contents of BISECT_LOG"), BISECT_LOG),

If this is supposed to be a more permanent subcommand (and https://git-scm.com/docs/git-bisect#_bisect_log_and_bisect_replay suggests it might be), it would probably make more sense to describe the option in less implementation-specific detail. Maybe something like:

	list the bisection steps so far

Ciao, Dscho

Previous: Miriam RubioNext: Miriam Rubio
Message 6 of 18 in “Finish converting git bisect to C part 3”
  1. 0/7 Finish converting git bisect to C part 3Miriam Rubio, Dec 21, 2020
  2. 5/7 bisect--helper: retire `--bisect-auto-next` subcommandMiriam Rubio, Dec 21, 2020
  3. 6/7 bisect--helper: reimplement `bisect_skip` shell function in CMiriam Rubio, Dec 21, 2020
  4. Johannes SchindelinJan 18, 2021
  5. 1/7 bisect--helper: reimplement `bisect_log` shell function in CMiriam Rubio, Dec 21, 2020
  6. Johannes SchindelinJan 18, 2021
  7. 3/7 bisect--helper: retire `--bisect-write` subcommandMiriam Rubio, Dec 21, 2020
  8. 7/7 bisect--helper: retire `--check-and-set-terms` subcommandMiriam Rubio, Dec 21, 2020
  9. 4/7 bisect--helper: use `res` instead of return in BISECT_RESET case optionMiriam Rubio, Dec 21, 2020
  10. 2/7 bisect--helper: reimplement `bisect_replay` shell function in CMiriam Rubio, Dec 21, 2020
  11. Rafael SilvaDec 22, 2020
  12. Rafael SilvaDec 23, 2020
  13. Junio C HamanoDec 23, 2020
  14. Rafael SilvaDec 23, 2020
  15. Junio C HamanoDec 23, 2020
  16. Johannes SchindelinJan 18, 2021
  17. Johannes SchindelinJan 18, 2021
  18. Junio C HamanoJan 18, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.