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

[GSoC] [PATCH v2 0/9] submodule: convert the rest of 'add' to C

From
Atharva Raykar <raykar.ath@gmail.com>
Date
Aug 5, 2021, 07:40 UTC
Message-ID
<20210805074054.29916-1-raykar.ath@gmail.com>
In-Reply-To
<20210805071917.29500-1-raykar.ath@gmail.com>

I missed the adding the first patch of this series, so I am re-sending with the missing commit included.

No change since v1, except for the inclusion of 75edf24186 (submodule--helper: add options for compute_submodule_clone_url(), 2021-07-06) at the beginning.

I am including the cover letter of v1 as-is, so the discussion can start from here, with minor edits to reflect the accurate counts of the patches:

---8<------8<------8<------8<------8<---
NOTE: This series uses the change introduced by 'ar/submodule-add-config'[1]

This series completes the conversion of all the important shell logic in 'submodule add' to C, by wrapping it in a submodule--helper builtin subcommand called 'add'.

The first 5 patches are preparatory patches. The refactors mostly involve exposing interfaces to C that were only previously usable as shell subcommands.

Then we have a patch that translates the shell code to C, faithfully reproducing the behaviour before the conversion.

The last 3 patches are cleanup patches. Our conversions have introduced a lot of dead code, all of them being 'submodule--helper' subcommands that have no further use, as we have C interfaces for these already. We remove these subcommands.

A question about the cache API used in [PATCH 5/9]:
  What is the difference between 'read_cache()' and 'read_cache_preload()'? [2]
  Which one is more appropriate for use in 'die_on_index_match()'?

Fetch-it-Via: git fetch https://github.com/tfidfwastaken/git submodule-helper-add-list-1

Footnotes =========

[1] https://lore.kernel.org/git/20210801063352.50813-1-raykar.ath@gmail.com/ [2] More about this question has been detailed in this section of my blog: http://atharvaraykar.me/gitnotes/week5#some-challenges-with-the-changes-that-are-cooking

I'll quote it here for convenience:
Show 15 quoted lines
> Before iterating through the cache entries of the index, you need to populate
> it.
>
> There’s two functions for this: read_cache() and read_cache_preload(). I have
> used the latter in my code. The thing is, when I swap it with the former, I
> could not find any change in the behaviour of my code. They appear to function
> equivalently.
>
> I understand that the *_preload() variant takes a pathspec which preloads index
> contents that match the pathspec in parallel. I don’t know what passing NULL to
> it does. Moreover, does this imply that read_cache() loads the cache on-demand,
> ie, it does no preloading?
>
> I am not sure about what exactly are their differences, and when is one variant
> preferred over the other.
--->8------>8------>8------>8------>8---
Atharva Raykar (9):
  submodule--helper: add options for compute_submodule_clone_url()
  submodule--helper: refactor resolve_relative_url() helper
  submodule--helper: remove repeated code in sync_submodule()
  dir: libify and export helper functions from clone.c
  submodule--helper: remove constness of sm_path
  submodule--helper: convert the bulk of cmd_add() to C
  submodule--helper: remove add-clone subcommand
  submodule--helper: remove add-config subcommand
  submodule--helper: remove resolve-relative-url subcommand
 builtin/clone.c             | 118 +-------------
 builtin/submodule--helper.c | 304 +++++++++++++++++++-----------------
 dir.c                       | 114 ++++++++++++++
 dir.h                       |   3 +
 git-submodule.sh            |  96 +-----------
 5 files changed, 280 insertions(+), 355 deletions(-)
-- 
2.32.0
Previous: Atharva RaykarNext: Atharva Raykar
Message 14 of 78 in “submodule: convert the rest of 'add' to C”
  1. Atharva RaykarAug 5, 2021
  2. [GSoC] [PATCH 1/8] submodule--helper: refactor resolve_relative_url() helperAtharva Raykar, Aug 5, 2021
  3. [GSoC] [PATCH 2/8] submodule--helper: remove repeated code in sync_submodule()Atharva Raykar, Aug 5, 2021
  4. Đoàn Trần Công DanhAug 6, 2021
  5. Christian CouderAug 6, 2021
  6. Atharva RaykarAug 6, 2021
  7. Junio C HamanoAug 6, 2021
  8. [GSoC] [PATCH 3/8] dir: libify and export helper functions from clone.cAtharva Raykar, Aug 5, 2021
  9. [GSoC] [PATCH 4/8] submodule--helper: remove constness of sm_pathAtharva Raykar, Aug 5, 2021
  10. [GSoC] [PATCH 5/8] submodule--helper: convert the bulk of cmd_add() to CAtharva Raykar, Aug 5, 2021
  11. [GSoC] [PATCH 6/8] submodule--helper: remove add-clone subcommandAtharva Raykar, Aug 5, 2021
  12. [GSoC] [PATCH 8/8] submodule--helper: remove resolve-relative-url subcommandAtharva Raykar, Aug 5, 2021
  13. [GSoC] [PATCH 7/8] submodule--helper: remove add-config subcommandAtharva Raykar, Aug 5, 2021
  14. [GSoC] [PATCH v2 0/9] submodule: convert the rest of 'add' to CAtharva Raykar, Aug 5, 2021
  15. [GSoC] [PATCH v2 1/9] submodule--helper: add options for compute_submodule_clone_url()Atharva Raykar, Aug 5, 2021
  16. Junio C HamanoAug 5, 2021
  17. [GSoC] [PATCH v2 2/9] submodule--helper: refactor resolve_relative_url() helperAtharva Raykar, Aug 5, 2021
  18. Junio C HamanoAug 5, 2021
  19. [GSoC] [PATCH v2 3/9] submodule--helper: remove repeated code in sync_submodule()Atharva Raykar, Aug 5, 2021
  20. Junio C HamanoAug 5, 2021
  21. [GSoC] [PATCH v2 4/9] dir: libify and export helper functions from clone.cAtharva Raykar, Aug 5, 2021
  22. Junio C HamanoAug 5, 2021
  23. Atharva RaykarAug 6, 2021
  24. Junio C HamanoAug 6, 2021
  25. Atharva RaykarAug 7, 2021
  26. [GSoC] [PATCH v2 5/9] submodule--helper: remove constness of sm_pathAtharva Raykar, Aug 5, 2021
  27. Junio C HamanoAug 5, 2021
  28. Atharva RaykarAug 6, 2021
  29. [GSoC] [PATCH v2 6/9] submodule--helper: convert the bulk of cmd_add() to CAtharva Raykar, Aug 5, 2021
  30. Đoàn Trần Công DanhAug 6, 2021
  31. Atharva RaykarAug 6, 2021
  32. [GSoC] [PATCH v2 7/9] submodule--helper: remove add-clone subcommandAtharva Raykar, Aug 5, 2021
  33. [GSoC] [PATCH v2 8/9] submodule--helper: remove add-config subcommandAtharva Raykar, Aug 5, 2021
  34. [GSoC] [PATCH v2 9/9] submodule--helper: remove resolve-relative-url subcommandAtharva Raykar, Aug 5, 2021
  35. [GSoC] [PATCH v3 0/8] submodule: convert the rest of 'add' to CAtharva Raykar, Aug 6, 2021
  36. [GSoC] [PATCH v3 1/8] submodule--helper: add options for compute_submodule_clone_url()Atharva Raykar, Aug 6, 2021
  37. [GSoC] [PATCH v3 2/8] submodule--helper: refactor resolve_relative_url() helperAtharva Raykar, Aug 6, 2021
  38. [GSoC] [PATCH v3 3/8] submodule--helper: remove repeated code in sync_submodule()Atharva Raykar, Aug 6, 2021
  39. [GSoC] [PATCH v3 4/8] dir: libify and export helper functions from clone.cAtharva Raykar, Aug 6, 2021
  40. [GSoC] [PATCH v3 5/8] submodule--helper: convert the bulk of cmd_add() to CAtharva Raykar, Aug 6, 2021
  41. [GSoC] [PATCH v3 6/8] submodule--helper: remove add-clone subcommandAtharva Raykar, Aug 6, 2021
  42. [GSoC] [PATCH v3 7/8] submodule--helper: remove add-config subcommandAtharva Raykar, Aug 6, 2021
  43. [GSoC] [PATCH v3 8/8] submodule--helper: remove resolve-relative-url subcommandAtharva Raykar, Aug 6, 2021
  44. [GSoC] [PATCH v4 0/8] submodule: convert the rest of 'add' to CAtharva Raykar, Aug 7, 2021
  45. [GSoC] [PATCH v4 1/8] submodule--helper: add options for compute_submodule_clone_url()Atharva Raykar, Aug 7, 2021
  46. Kaartic SivaraamAug 8, 2021
  47. Kaartic SivaraamAug 8, 2021
  48. Atharva RaykarAug 9, 2021
  49. Atharva RaykarAug 9, 2021
  50. Kaartic SivaraamAug 10, 2021
  51. [GSoC] [PATCH v4 2/8] submodule--helper: refactor resolve_relative_url() helperAtharva Raykar, Aug 7, 2021
  52. [GSoC] [PATCH v4 3/8] submodule--helper: remove repeated code in sync_submodule()Atharva Raykar, Aug 7, 2021
  53. Kaartic SivaraamAug 8, 2021
  54. Atharva RaykarAug 9, 2021
  55. [GSoC] [PATCH v4 4/8] dir: libify and export helper functions from clone.cAtharva Raykar, Aug 7, 2021
  56. Kaartic SivaraamAug 8, 2021
  57. Atharva RaykarAug 9, 2021
  58. Kaartic SivaraamAug 10, 2021
  59. Junio C HamanoAug 10, 2021
  60. Atharva RaykarAug 11, 2021
  61. [GSoC] [PATCH v4 5/8] submodule--helper: convert the bulk of cmd_add() to CAtharva Raykar, Aug 7, 2021
  62. [GSoC] [PATCH v4 6/8] submodule--helper: remove add-clone subcommandAtharva Raykar, Aug 7, 2021
  63. [GSoC] [PATCH v4 7/8] submodule--helper: remove add-config subcommandAtharva Raykar, Aug 7, 2021
  64. [GSoC] [PATCH v4 8/8] submodule--helper: remove resolve-relative-url subcommandAtharva Raykar, Aug 7, 2021
  65. Kaartic SivaraamAug 8, 2021
  66. [GSoC] [PATCH v5 0/9] submodule: convert the rest of 'add' to CAtharva Raykar, Aug 10, 2021
  67. [GSoC] [PATCH v5 1/9] submodule--helper: add options for compute_submodule_clone_url()Atharva Raykar, Aug 10, 2021
  68. Bagas SanjayaAug 11, 2021
  69. Atharva RaykarAug 11, 2021
  70. [GSoC] [PATCH v5 3/9] submodule--helper: remove repeated code in sync_submodule()Atharva Raykar, Aug 10, 2021
  71. [GSoC] [PATCH v5 2/9] submodule--helper: refactor resolve_relative_url() helperAtharva Raykar, Aug 10, 2021
  72. [GSoC] [PATCH v5 4/9] dir: libify and export helper functions from clone.cAtharva Raykar, Aug 10, 2021
  73. [GSoC] [PATCH v5 5/9] submodule--helper: convert the bulk of cmd_add() to CAtharva Raykar, Aug 10, 2021
  74. [GSoC] [PATCH v5 6/9] submodule--helper: remove add-clone subcommandAtharva Raykar, Aug 10, 2021
  75. [GSoC] [PATCH v5 9/9] submodule--helper: rename compute_submodule_clone_url()Atharva Raykar, Aug 10, 2021
  76. [GSoC] [PATCH v5 8/9] submodule--helper: remove resolve-relative-url subcommandAtharva Raykar, Aug 10, 2021
  77. [GSoC] [PATCH v5 7/9] submodule--helper: remove add-config subcommandAtharva Raykar, Aug 10, 2021
  78. Junio C HamanoSep 8, 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.