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

[PATCH 0/7] Submodule improvements

From
Stefan Beller <sbeller@google.com>
Date
Aug 18, 2015, 00:21 UTC
Message-ID
<1439857323-21048-1-git-send-email-sbeller@google.com>

This series is a reroll consisting of hv/submodule-config and sb/submodule-helper and it applies on top of origin/jk/git-path.

Our long term goal is to make submodule handling more scalable by parallelizing the submodule code. To write good parallelizable code I'd first want to port it to C, as there are no good portable solutions for shell scripts to run in parallel. This series is a first step on porting git-submodule.sh to C.

I did not alter the patches of Heiko, except for squashing $gmane/275799 (2 cleanup patches I proposed 5 days ago).

The module_{list, name, clone} functions are a direct translation of the shell counter parts. I took way longer than expected for module_clone, as I was fighting with absolute and relative paths for too long. (Whenever shell is translated to C, I estimate two times the number of lines of code which fits quite reasonably.)

Thanks, Stefan

Heiko Voigt (4):
  submodule: implement a config API for lookup of .gitmodules values
  submodule: extract functions for config set and lookup
  submodule: use new config API for worktree configurations
  submodule: Allow errornous values for the fetchrecursesubmodules
    option
Stefan Beller (3):
  submodule: implement `module_list` as a builtin helper
  submodule: implement `module_name` as a builtin helper
  submodule: implement `module_clone` as a builtin helper
 .gitignore                                       |   2 +
 Documentation/technical/api-submodule-config.txt |  62 +++
 Makefile                                         |   3 +
 builtin.h                                        |   1 +
 builtin/checkout.c                               |   1 +
 builtin/fetch.c                                  |   1 +
 builtin/submodule--helper.c                      | 299 ++++++++++++++
 diff.c                                           |   1 +
 git-submodule.sh                                 | 164 +-------
 git.c                                            |   1 +
 submodule-config.c                               | 482 +++++++++++++++++++++++
 submodule-config.h                               |  29 ++
 submodule.c                                      | 122 ++----
 submodule.h                                      |   4 +-
 t/t7411-submodule-config.sh                      | 153 +++++++
 test-submodule-config.c                          |  76 ++++
 16 files changed, 1154 insertions(+), 247 deletions(-)
 create mode 100644 Documentation/technical/api-submodule-config.txt
 create mode 100644 builtin/submodule--helper.c
 create mode 100644 submodule-config.c
 create mode 100644 submodule-config.h
 create mode 100755 t/t7411-submodule-config.sh
 create mode 100644 test-submodule-config.c
-- 
2.5.0.330.g130be8e.dirty
Next: Stefan Beller
Message 1 of 19 in “Submodule improvements”
  1. 0/7 Submodule improvementsStefan Beller, Aug 18, 2015
  2. 1/7 submodule: implement a config API for lookup of .gitmodules valuesStefan Beller, Aug 18, 2015
  3. 2/7 submodule: extract functions for config set and lookupStefan Beller, Aug 18, 2015
  4. 3/7 submodule: use new config API for worktree configurationsStefan Beller, Aug 18, 2015
  5. 4/7 submodule: Allow errornous values for the fetchrecursesubmodules optionStefan Beller, Aug 18, 2015
  6. Junio C HamanoAug 19, 2015
  7. 5/7 submodule: implement `module_list` as a builtin helperStefan Beller, Aug 18, 2015
  8. Junio C HamanoAug 19, 2015
  9. Junio C HamanoAug 19, 2015
  10. Stefan BellerAug 19, 2015
  11. Stefan BellerAug 19, 2015
  12. 6/7 submodule: implement `module_name` as a builtin helperStefan Beller, Aug 18, 2015
  13. 7/7 submodule: implement `module_clone` as a builtin helperStefan Beller, Aug 18, 2015
  14. Stefan BellerAug 18, 2015
  15. 7/7 submodule: implement `module_clone` as a builtin helperStefan Beller, Aug 18, 2015
  16. Junio C HamanoAug 19, 2015
  17. Stefan BellerAug 19, 2015
  18. Jeff KingAug 21, 2015
  19. Stefan BellerAug 18, 2015

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.