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

Re: [PATCH v7] describe: refresh the index when 'broken' flag is used

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 3, 2024, 18:17 UTC
Message-ID
<xmqq1q4acpcv.fsf@gitster.g>
In-Reply-To
<CAOLa=ZR-g4G0FaxnQjjkOST-zeRxBXXK1gpJ=P3xdbi_9eN_rg@mail.gmail.com>
Karthik Nayak <karthik.188@gmail.com> writes:
Show 17 quoted lines
> Junio C Hamano <gitster@pobox.com> writes:
>
>> Karthik Nayak <karthik.188@gmail.com> writes:
>>
>>> This explains for why 'broken' must use a subprocess, but there is
>>> nothing stopping 'dirty' from also using a subprocess, right? It
>>> currently uses an in-process index refresh but it _could_ be a
>>> subprocess too.
>>
>> Correct, except that it does not make sense to do any and all things
>> that you _could_ do.  So...
>
> Well, In this context, I think there is some merit though. There are two
> blocks of code `--broken` and `--dirty` one after the other which both
> need to refresh the index. With this patch, 'broken' will use a child
> process to do so while 'dirty' will use `refresh_index(...)`. To someone
> reading the code it would seem a bit confusing.
Yes, that much I very much agree.
> I agree there is no
> merit in using a child process in 'dirty' by itself.

Yes, that made me puzzled why you brought it up, as it was way too oblique suggestion to ...

> But I also think we
> should leave a comment there for readers to understand the distinction.

... improve the "documentation" to help future developers who wonder why the code are in the shape as it is.

In this particular case, I think it is borderline if the issue warrants in-code comment or if it is a bit too much. Describing the same thing in the log message would probably be a valid alternative, as "git blame" can lead those readers to the commit that introduced the distinction (in other words, this one).

Thanks.
diff --git i/builtin/describe.c w/builtin/describe.c
index e936d2c19f..bc2ad60b35 100644
--- i/builtin/describe.c
+++ w/builtin/describe.c
@@ -648,6 +648,14 @@ int cmd_describe(int argc, const char **argv, const char *prefix)
 
 	if (argc == 0) {
 		if (broken) {
+			/* 
+			 * Avoid doing these "update-index --refresh"
+			 * and "diff-index" operations in-process
+			 * (like how the code path for "--dirty"
+			 * without "--broken" does so below), as we
+			 * are told to prepare for a broken repository
+			 * where running these may lead to die().
+			 */
 			struct child_process cp = CHILD_PROCESS_INIT;
 
 			strvec_pushv(&cp.args, update_index_args);
Previous: Karthik NayakNext: Karthik Nayak
Message 31 of 32 in “describe: refresh the index when 'broken' flag is used”
  1. describe: refresh the index when 'broken' flag is usedAbhijeet Sonar, Jun 25, 2024
  2. Junio C HamanoJun 25, 2024
  3. Junio C HamanoJun 25, 2024
  4. Karthik NayakJun 26, 2024
  5. Abhijeet SonarJun 26, 2024
  6. describe: refresh the index when 'broken' flag is usedAbhijeet Sonar, Jun 26, 2024
  7. Abhijeet SonarJun 26, 2024
  8. describe: refresh the index when 'broken' flag is usedAbhijeet Sonar, Jun 26, 2024
  9. Karthik NayakJun 26, 2024
  10. Abhijeet SonarJun 26, 2024
  11. Re* [PATCH v5] describe: refresh the index when 'broken' flag is usedJunio C Hamano, Jun 26, 2024
  12. Junio C HamanoJun 26, 2024
  13. Abhijeet SonarJun 26, 2024
  14. Junio C HamanoJun 26, 2024
  15. Junio C HamanoJun 26, 2024
  16. Abhijeet SonarJun 26, 2024
  17. Junio C HamanoJun 26, 2024
  18. Jeff KingJun 26, 2024
  19. Jeff KingJun 27, 2024
  20. Karthik NayakJun 26, 2024
  21. Junio C HamanoJun 26, 2024
  22. Junio C HamanoJun 26, 2024
  23. describe: refresh the index when 'broken' flag is usedAbhijeet Sonar, Jun 26, 2024
  24. Abhijeet SonarJun 26, 2024
  25. Abhijeet SonarJun 27, 2024
  26. Junio C HamanoJun 27, 2024
  27. Abhijeet SonarJun 27, 2024
  28. Karthik NayakJun 30, 2024
  29. Junio C HamanoJul 1, 2024
  30. Karthik NayakJul 2, 2024
  31. Junio C HamanoJul 3, 2024
  32. Karthik NayakJul 3, 2024

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.