]> git.ipfire.org Git - thirdparty/git.git/commit
submodule: introduce extensions.submodulePathConfig
authorAdrian Ratiu <adrian.ratiu@collabora.com>
Mon, 12 Jan 2026 18:46:25 +0000 (20:46 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 12 Jan 2026 19:56:55 +0000 (11:56 -0800)
commit4173df5187c8ba8bc2cc1a215f25b284d70631da
tree9d3ce00ce614d71f275c52b9b51e7b67d9c49f57
parent34206caaf7c5059ac8480587e31cfc40473002b4
submodule: introduce extensions.submodulePathConfig

The idea of this extension is to abstract away the submodule gitdir
path implementation: everyone is expected to use the config and not
worry about how the path is computed internally, either in git or
other implementations.

With this extension enabled, the submodule.<name>.gitdir repo config
becomes the single source of truth for all submodule gitdir paths.

The submodule.<name>.gitdir config is added automatically for all new
submodules when this extension is enabled.

Git will throw an error if the extension is enabled and a config is
missing, advising users how to migrate. Migration is manual for now.

E.g. to add a missing config entry for an existing "foo" module:
git config submodule.foo.gitdir .git/modules/foo

Suggested-by: Junio C Hamano <gitster@pobox.com>
Suggested-by: Phillip Wood <phillip.wood123@gmail.com>
Suggested-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 files changed:
Documentation/config/extensions.adoc
Documentation/config/submodule.adoc
builtin/submodule--helper.c
repository.c
repository.h
setup.c
setup.h
submodule.c
t/lib-verify-submodule-gitdir-path.sh [new file with mode: 0644]
t/meson.build
t/t7425-submodule-gitdir-path-extension.sh [new file with mode: 0755]
t/t9902-completion.sh