]> git.ipfire.org Git - thirdparty/git.git/commitdiff
fixup! submodule: prevent overwriting .gitmodules on path reuse
authorJunio C Hamano <gitster@pobox.com>
Thu, 24 Jul 2025 20:44:24 +0000 (13:44 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 24 Jul 2025 20:56:46 +0000 (13:56 -0700)
builtin/submodule--helper.c
t/t7400-submodule-basic.sh

index ca6f6fe1d13b60dd939c1e74193fad6c1709e033..08a808e5c4281979b85a1037f7ca443cc4b91ced 100644 (file)
@@ -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,
index 6812df308107cb92423f40ea90b8ace80e2adf5e..fd3e7e355e4ffca1cc6457d383458f8072aba053 100755 (executable)
@@ -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
        )
 '