aboutsummaryrefslogtreecommitdiff
path: root/setup.c
diff options
context:
space:
mode:
authorAdrian Ratiu <adrian.ratiu@collabora.com>2026-01-12 20:46:26 +0200
committerJunio C Hamano <gitster@pobox.com>2026-01-12 11:56:56 -0800
commitc349bad72969d59758e1294b4e9964dccd967fa0 (patch)
treeb301ddfb62dea30168158d4db4c7614a64e146a5 /setup.c
parent4173df5187c8ba8bc2cc1a215f25b284d70631da (diff)
downloadgit-c349bad72969d59758e1294b4e9964dccd967fa0.tar.xz
submodule: allow runtime enabling extensions.submodulePathConfig
Add a new config `init.defaultSubmodulePathConfig` which allows enabling `extensions.submodulePathConfig` for new submodules by default (those created via git init or clone). Important: setting init.defaultSubmodulePathConfig = true does not globally enable `extensions.submodulePathConfig`. Existing repositories will still have the extension disabled and will require migration (for example via git submodule--helper command added in the next commit). Suggested-by: Patrick Steinhardt <ps@pks.im> Suggested-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'setup.c')
-rw-r--r--setup.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/setup.c b/setup.c
index 207fa36e10..3f91a4aaec 100644
--- a/setup.c
+++ b/setup.c
@@ -2228,6 +2228,7 @@ void initialize_repository_version(int hash_algo,
{
struct strbuf repo_version = STRBUF_INIT;
int target_version = GIT_REPO_VERSION;
+ int default_submodule_path_config = 0;
/*
* Note that we initialize the repository version to 1 when the ref
@@ -2266,6 +2267,15 @@ void initialize_repository_version(int hash_algo,
clear_repository_format(&repo_fmt);
}
+ repo_config_get_bool(the_repository, "init.defaultSubmodulePathConfig",
+ &default_submodule_path_config);
+ if (default_submodule_path_config) {
+ /* extensions.submodulepathconfig requires at least version 1 */
+ if (target_version == 0)
+ target_version = 1;
+ repo_config_set(the_repository, "extensions.submodulepathconfig", "true");
+ }
+
strbuf_addf(&repo_version, "%d", target_version);
repo_config_set(the_repository, "core.repositoryformatversion", repo_version.buf);