fixup! submodule: prevent overwriting .gitmodules on path reuse
This commit is contained in:
@@ -3459,7 +3459,6 @@ static int module_add(int argc, const char **argv, const char *prefix,
|
|||||||
char *to_free = NULL;
|
char *to_free = NULL;
|
||||||
const struct submodule *existing;
|
const struct submodule *existing;
|
||||||
struct strbuf buf = STRBUF_INIT;
|
struct strbuf buf = STRBUF_INIT;
|
||||||
int i;
|
|
||||||
char *sm_name_to_free = NULL;
|
char *sm_name_to_free = NULL;
|
||||||
struct option options[] = {
|
struct option options[] = {
|
||||||
OPT_STRING('b', "branch", &add_data.branch, N_("branch"),
|
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 (existing && strcmp(existing->path, add_data.sm_path)) {
|
||||||
if (!force) {
|
if (!force) {
|
||||||
die(_("submodule name '%s' already used for path '%s'"),
|
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 */
|
/* --force: build <name><n> until unique */
|
||||||
for (i = 1; ; i++) {
|
for (int i = 1; ; i++) {
|
||||||
strbuf_reset(&buf);
|
strbuf_reset(&buf);
|
||||||
strbuf_addf(&buf, "%s%d", add_data.sm_name, i);
|
strbuf_addf(&buf, "%s%d", add_data.sm_name, i);
|
||||||
if (!submodule_from_name(the_repository,
|
if (!submodule_from_name(the_repository,
|
||||||
|
|||||||
@@ -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
|
# Now adding a *new* repo at the old name must fail
|
||||||
git init ../child2-origin &&
|
git init ../child2-origin &&
|
||||||
git -C ../child2-origin commit --allow-empty -m init &&
|
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
|
||||||
)
|
)
|
||||||
'
|
'
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user