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

Submodules UX overhaul update (was: What's cooking in git.git (Oct 2021, #04; Thu, 14))

From
Emily Shaffer <emilyshaffer@google.com>
Date
Oct 15, 2021, 18:56 UTC
Message-ID
<YWnO4T2QkSm1bIRU@google.com>
In-Reply-To
<xmqqwnmf9lnv.fsf@gitster.g>
On Thu, Oct 14, 2021 at 05:28:04PM -0700, Junio C Hamano wrote:
Show 15 quoted lines
> [Graduated to 'master']
> 
> * ab/config-based-hooks-1 (2021-09-27) 8 commits
>   (merged to 'next' on 2021-10-06 at d05325ed35)
>  + hook-list.h: add a generated list of hooks, like config-list.h
>  + hook.c users: use "hook_exists()" instead of "find_hook()"
>  + hook.c: add a hook_exists() wrapper and use it in bugreport.c
>  + hook.[ch]: move find_hook() from run-command.c to hook.c
>  + Makefile: remove an out-of-date comment
>  + Makefile: don't perform "mv $@+ $@" dance for $(GENERATED_H)
>  + Makefile: stop hardcoding {command,config}-list.h
>  + Makefile: mark "check" target as .PHONY
>  (this branch is used by ab/config-based-hooks-2.)
> 
>  Mostly preliminary clean-up in the hook API.
Glad to see it go in.
> --------------------------------------------------
> [New Topics]
> 

Ævar has sent the next set of hook API patches to list - please take a look. I sent a review today, but I am probably too familiar with those patches to spot important details, by now.

https://lore.kernel.org/git/cover-00.13-00000000000-20211012T131934Z-avarab@gmail.com/

Jonathan Tan sent an RFC series adding a new conditional config include based on configured remote URL, which we hope will A) make it easier for us to pilot test the submodule workflow, and B) make it easier for engineers at MegaCorp (or anybody shipping a package via a package manager) to provide configs (and later hooks) without relying on the controversial remote-suggested-hooks topic proposed earlier.

https://lore.kernel.org/git/cover.1634077795.git.jonathantanmy%40google.com
Show 18 quoted lines
> --------------------------------------------------
> [Stalled]
> 
> * ar/submodule-update (2021-10-13) 9 commits
>  . submodule--helper: rename helper functions
>  . submodule--helper: remove unused helpers
>  . submodule: move core cmd_update() logic to C
>  . submodule--helper: run update using child process struct
>  . submodule--helper: allow setting superprefix for init_submodule()
>  . submodule--helper: refactor get_submodule_displaypath()
>  . submodule--helper: rename helpers for update-clone
>  . submodule--helper: get remote names from any repository
>  . submodule--helper: split up ensure_core_worktree()
> 
>  Rewrite of "git submodule update" in C.
> 
>  Kicked out of 'seen' to make room for es/superproject-aware-submodules
>  which is among the topics this topic stomps on.
The reroll of es/superproject-aware-submodules v4 went out yesterday:
https://lore.kernel.org/git/20211014203416.2802639-1-emilyshaffer%40google.com
Show 14 quoted lines
> --------------------------------------------------
> [Cooking]
> 
> * es/superproject-aware-submodules (2021-10-14) 4 commits
>  - submodule: record superproject gitdir during 'update'
>  - submodule: record superproject gitdir during absorbgitdirs
>  - introduce submodule.superprojectGitDir record
>  - t7400-submodule-basic: modernize inspect() helper
> 
>  A configuration variable in a submodule points at the location of
>  the superproject it is bound to (RFC).
> 
>  Brought back to 'seen' to see if it still plays well with the rest
>  of 'seen', without the conflicting ar/submodule-update topic.
See above; a reroll happened.
Show 17 quoted lines
> * jt/no-abuse-alternate-odb-for-submodules (2021-10-08) 9 commits
>   (merged to 'next' on 2021-10-14 at ae49a2ceda)
>  + submodule: trace adding submodule ODB as alternate
>  + submodule: pass repo to check_has_commit()
>  + object-file: only register submodule ODB if needed
>  + merge-{ort,recursive}: remove add_submodule_odb()
>  + refs: peeling non-the_repository iterators is BUG
>  + refs: teach arbitrary repo support to iterators
>  + refs: plumb repo into ref stores
>  + Merge branch 'jk/ref-paranoia' into jt/no-abuse-alternate-odb-for-submodules
>  + Merge branch 'jt/add-submodule-odb-clean-up' into jt/no-abuse-alternate-odb-for-submodules
> 
>  Follow through the work to use the repo interface to access
>  submodule objects in-process, instead of abusing the alternate
>  object database interface.
> 
>  Will merge to 'master'.
\o/

Besides what was in the What's Cooking mail, we have a couple more series on our minds:

https://lore.kernel.org/git/0346f447548cfd11307173aaa3284d86a2ef689c.1631319742.git.steadmon@google.com/
 Introducing a new value for core.autosetupmerge, "inherit". This eases
 our ability to push to the right place in submodules when running 'git
 push' recursively from the superproject.
 However, this topic is not ready for review - Josh is planning a
 re-roll later in the week.
https://lore.kernel.org/git/pull.1103.git.git.1633633635.gitgitgadget@gmail.com/
 Pre-work for 'git branch --recurse-submodules' support. This one is
 mostly plumbing through `struct repo` and replacing a few instances of
 `the_repository`. Glen is planning a reroll shortly.
 - Emily
Previous: Ævar Arnfjörð BjarmasonNext: Junio C Hamano
Message 6 of 7 in “What's cooking in git.git (Oct 2021, #04; Thu, 14)”
  1. Junio C HamanoOct 15, 2021
  2. Taylor BlauOct 15, 2021
  3. Ævar Arnfjörð BjarmasonOct 15, 2021
  4. Junio C HamanoOct 15, 2021
  5. ab/test-cleanly-recreate-trash-directoryÆvar Arnfjörð Bjarmason, Oct 15, 2021
  6. Submodules UX overhaul update (was: What's cooking in git.git (Oct 2021, #04; Thu, 14))Emily Shaffer, Oct 15, 2021
  7. Junio C HamanoOct 15, 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.