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

Re: [GSoC] [PATCH 3/3] submodule--helper: introduce add-clone subcommand

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 7, 2021, 19:57 UTC
Message-ID
<xmqqr1g9ew2f.fsf@gitster.g>
In-Reply-To
<20210706181936.34087-4-raykar.ath@gmail.com>
Atharva Raykar <raykar.ath@gmail.com> writes:
Show 8 quoted lines
> Let's add a new "add-clone" subcommand to `git submodule--helper` with
> the goal of converting part of the shell code in git-submodule.sh
> related to `git submodule add` into C code. This new subcommand clones
> the repository that is to be added, and checks out to the appropriate
> branch.
>
> This is meant to be a faithful conversion that leaves the behaviour of
> 'submodule add' unchanged.
Makes sense.
Show 6 quoted lines
> The 'die' that is used in git-submodule.sh is not the same as the
> 'die()' in C--the latter prefixes with 'fatal:' and exits with an error
> code of 128, while the shell die exits with code 1.
>
> Introduce a custom die routine, that can be used by converted
> subcommands to emulate the shell 'die'.

I suspect that installing this with set_die_routine() might be going too far. If some of the lower-level helper routines we call from here have to die (e.g. our call results in xmalloc() getting called and we run out of memory), die() called there will also end up calling our submodule_die(), not just new calls to die() you are adding in this patch. Calling submodule_die() directly from the code you convert from the scripted version where we used to call die of the scripted version would be fine, though.

I suspect that it would be OK to use the standard die() instead, with the minimum adjustment as needed, namely, we may have to

 * Adjust the messages the scripted version of the caller gave to
   the scripted version of die, if needed (e.g. if the scripted
   version added "fatal:" prefix itself to compensate for the lack
   of it in the scripted "die", we can drop the prefix and call the
   standard die());
 * Adjust the tests if they care about the differences between
   exiting 128 and 1.
Show 7 quoted lines
> +static NORETURN void submodule_die(const char *err, va_list params)
> +{
> +	vfprintf(stderr, err, params);
> +	fputc('\n', stderr);
> +	fflush(stderr);
> +	exit(1);
> +}
Other than that, all three patches looked quite reasonable.
Thanks.
Previous: Atharva RaykarNext: Atharva Raykar
Message 5 of 34 in “submodule add: partial conversion to C”
  1. Atharva RaykarJul 6, 2021
  2. [GSoC] [PATCH 1/3] t7400: test failure to add submodule in tracked pathAtharva Raykar, Jul 6, 2021
  3. [GSoC] [PATCH 2/3] submodule--helper: refactor module_clone()Atharva Raykar, Jul 6, 2021
  4. [GSoC] [PATCH 3/3] submodule--helper: introduce add-clone subcommandAtharva Raykar, Jul 6, 2021
  5. Junio C HamanoJul 7, 2021
  6. Atharva RaykarJul 8, 2021
  7. [GSoC] [PATCH v2 0/4] submodule add: partial conversion to CAtharva Raykar, Jul 8, 2021
  8. [GSoC] [PATCH v2 1/4] t7400: test failure to add submodule in tracked pathAtharva Raykar, Jul 8, 2021
  9. [GSoC] [PATCH v2 2/4] submodule: prefix die messages with 'fatal'Atharva Raykar, Jul 8, 2021
  10. Junio C HamanoJul 8, 2021
  11. Đoàn Trần Công DanhJul 9, 2021
  12. Atharva RaykarJul 10, 2021
  13. Kaartic SivaraamJul 10, 2021
  14. [GSoC] [PATCH v2 3/4] submodule--helper: refactor module_clone()Atharva Raykar, Jul 8, 2021
  15. [GSoC] [PATCH v2 4/4] submodule--helper: introduce add-clone subcommandAtharva Raykar, Jul 8, 2021
  16. [GSoC] [PATCH v3 0/4] submodule add: partial conversion to CAtharva Raykar, Jul 10, 2021
  17. [GSoC] [PATCH v3 1/4] t7400: test failure to add submodule in tracked pathAtharva Raykar, Jul 10, 2021
  18. [GSoC] [PATCH v3 2/4] submodule: prefix die messages with 'fatal'Atharva Raykar, Jul 10, 2021
  19. [GSoC] [PATCH v3 3/4] submodule--helper: refactor module_clone()Atharva Raykar, Jul 10, 2021
  20. [GSoC] [PATCH v3 4/4] submodule--helper: introduce add-clone subcommandAtharva Raykar, Jul 10, 2021
  21. submodule: drop unused sm_name parameter from show_fetch_remotes()Jeff King, Jul 23, 2021
  22. Atharva RaykarJul 23, 2021
  23. Junio C HamanoJul 26, 2021
  24. submodule--helper: fix incorrect newlines in an error messageKaartic Sivaraam, Aug 5, 2021
  25. Atharva RaykarAug 6, 2021
  26. Kaartic SivaraamAug 6, 2021
  27. 0/1 submodule: corret an incorrectly formatted error messageKaartic Sivaraam, Sep 18, 2021
  28. 1/1 submodule--helper: fix incorrect newlines in an error messageKaartic Sivaraam, Sep 18, 2021
  29. Junio C HamanoSep 20, 2021
  30. Atharva RaykarSep 21, 2021
  31. Atharva RaykarSep 21, 2021
  32. 0/1 submodule: correct an incorrectly formatted error messageKaartic Sivaraam, Oct 23, 2021
  33. 1/1 submodule--helper: fix incorrect newlines in an error messageKaartic Sivaraam, Oct 23, 2021
  34. Junio C HamanoOct 24, 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.