aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2025-07-24 13:44:24 -0700
committerJunio C Hamano <gitster@pobox.com>2025-07-24 13:56:46 -0700
commit9305027adef9b8e8de8b2bee11dd442c7e579490 (patch)
treeba6689e3b450ae498d9e42f2d96ef7f5c60c1cfb
parentbb10dcf5730356b9ef70d40eca2335e9d406954a (diff)
downloadgit-9305027adef9b8e8de8b2bee11dd442c7e579490.tar.gz
fixup! submodule: prevent overwriting .gitmodules on path reuse
-rw-r--r--builtin/submodule--helper.c5
-rwxr-xr-xt/t7400-submodule-basic.sh3
2 files changed, 4 insertions, 4 deletions
diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c
index ca6f6fe1d1..08a808e5c4 100644
--- a/builtin/submodule--helper.c
+++ b/builtin/submodule--helper.c
@@ -3459,7 +3459,6 @@ static int module_add(int argc, const char **argv, const char *prefix,
char *to_free = NULL;
const struct submodule *existing;
struct strbuf buf = STRBUF_INIT;
- int i;
char *sm_name_to_free = NULL;
struct option options[] = {
OPT_STRING('b', "branch", &add_data.branch, N_("branch"),
@@ -3570,10 +3569,10 @@ static int module_add(int argc, const char **argv, const char *prefix,
if (existing && strcmp(existing->path, add_data.sm_path)) {
if (!force) {
die(_("submodule name '%s' already used for path '%s'"),
- add_data.sm_name, existing->path);
+ add_data.sm_name, existing->path);
}
/* --force: build <name><n> until unique */
- for (i = 1; ; i++) {
+ for (int i = 1; ; i++) {
strbuf_reset(&buf);
strbuf_addf(&buf, "%s%d", add_data.sm_name, i);
if (!submodule_from_name(the_repository,
diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh
index 6812df3081..fd3e7e355e 100755
--- a/t/t7400-submodule-basic.sh
+++ b/t/t7400-submodule-basic.sh
@@ -1500,7 +1500,8 @@ test_expect_success 'submodule add fails when name is reused' '
# Now adding a *new* repo at the old name must fail
git init ../child2-origin &&
git -C ../child2-origin commit --allow-empty -m init &&
- test_must_fail git submodule add ../child2-origin child
+ test_must_fail git submodule add ../child2-origin child 2>err &&
+ test_grep "already used for" err
)
'