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

Re: [PATCH v5 06/13] bisect--helper: reimplement `bisect_next` and `bisect_auto_next` shell functions in C

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 25, 2020, 00:19 UTC
Message-ID
<xmqqzh7oigz3.fsf@gitster.c.googlers.com>
In-Reply-To
<xmqqv9imdquw.fsf@gitster.c.googlers.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 14 quoted lines
> The ref API is getting updated so that the 40-hex files whose names
> are all capital and ends with _HEAD are being converted from "files
> that happen to record 40-hex" to "refs that live at the toplevel
> outside refs/ hierarchy".  Checking with
>
> 	no_checkout = ref_exists("BISECT_HEAD");
>
> would work in both old and new worlds, hopefully.
>
> Similarly, if the new code you are writing reads directly from
> git_path_bisect_head(), write into it, or unlink it, these accesses
> should be replaced with calls to refs API (e.g. you already do so in
> your bisect_state() helper where you use get_oid() on the refname,
> not read from the file).

In the meantime, I have applied the following fix-up on top of these 13 patches, but when the topic gets rerolled (as we are in the feature freeze before the upcoming release, there is no need to hurry till the end of the month, though), I'd rather want to see the new use of file_exists(git_path_bisect_head()) disappear. As it stands as a 14-patch series, the series would instead end up with us making a mistake to introduce new use of git_path_bisect_head() at step 06/14 and then later realize the mistake and fix it at step 14/14, which would be a waste of time for future readers of the code.

Thanks.
-- >8 --
Subject: SQUASH??? do not add new users of git_path_bisect_head()
---
 builtin/bisect--helper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/builtin/bisect--helper.c b/builtin/bisect--helper.c
index 20d359b2ca..eb3d30389b 100644
--- a/builtin/bisect--helper.c
+++ b/builtin/bisect--helper.c
@@ -572,7 +572,7 @@ static enum bisect_error bisect_next(struct bisect_terms *terms, const char *pre
 	if (bisect_next_check(terms, terms->term_good))
 		return BISECT_FAILED;
 
-	no_checkout = file_exists(git_path_bisect_head());
+	no_checkout = ref_exists("BISECT_HEAD");
 
 	/* Perform all bisection computation, display and checkout */
 	res = bisect_next_all(the_repository, prefix, no_checkout);
-- 
2.28.0-rc1
Previous: Junio C HamanoNext: Miriam Rubio
Message 13 of 24 in “Finish converting git bisect to C part 2”
  1. 00/13 Finish converting git bisect to C part 2Miriam Rubio, Jul 17, 2020
  2. 01/13 bisect--helper: BUG() in cmd_*() on invalid subcommandMiriam Rubio, Jul 17, 2020
  3. Shourya ShuklaJul 25, 2020
  4. 03/13 bisect--helper: introduce new `write_in_file()` functionMiriam Rubio, Jul 17, 2020
  5. Junio C HamanoJul 17, 2020
  6. 05/13 bisect: call 'clear_commit_marks_all()' in 'bisect_next_all()'Miriam Rubio, Jul 17, 2020
  7. 04/13 bisect--helper: reimplement `bisect_autostart` shell function in CMiriam Rubio, Jul 17, 2020
  8. Đoàn Trần Công DanhJul 26, 2020
  9. 08/13 bisect--helper: retire `--bisect-clean-state` subcommandMiriam Rubio, Jul 17, 2020
  10. 07/13 bisect--helper: finish porting `bisect_start()` to CMiriam Rubio, Jul 17, 2020
  11. 06/13 bisect--helper: reimplement `bisect_next` and `bisect_auto_next` shell functions in CMiriam Rubio, Jul 17, 2020
  12. Junio C HamanoJul 17, 2020
  13. Junio C HamanoJul 25, 2020
  14. 09/13 bisect--helper: retire `--next-all` subcommandMiriam Rubio, Jul 17, 2020
  15. 02/13 bisect--helper: use '-res' in 'cmd_bisect__helper' returnMiriam Rubio, Jul 17, 2020
  16. Shourya ShuklaJul 25, 2020
  17. Junio C HamanoJul 25, 2020
  18. Pratyush YadavJul 27, 2020
  19. Pratyush YadavJul 27, 2020
  20. Junio C HamanoJul 27, 2020
  21. 10/13 bisect--helper: reimplement `bisect_state` & `bisect_head` shell functions in CMiriam Rubio, Jul 17, 2020
  22. 11/13 bisect--helper: retire `--check-expected-revs` subcommandMiriam Rubio, Jul 17, 2020
  23. 13/13 bisect--helper: retire `--bisect-autostart` subcommandMiriam Rubio, Jul 17, 2020
  24. 12/13 bisect--helper: retire `--write-terms` subcommandMiriam Rubio, Jul 17, 2020

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.