summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2021-09-23 21:06:53 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-09-23 21:06:53 (GMT)
commit4d22f304124e3e534fdde5ff71af6357df76ccbd (patch)
tree542fabdfd1a0fb310ef38df2498516442a37b11b
parent2d900ed11ba5a04b489764b7083657b6d3034fbc (diff)
parentc41acf4b2a8bc202e2e4e40827dbecc705e3c973 (diff)
downloadgit-4d22f304124e3e534fdde5ff71af6357df76ccbd.zip
git-4d22f304124e3e534fdde5ff71af6357df76ccbd.tar.gz
git-4d22f304124e3e534fdde5ff71af6357df76ccbd.tar.bz2
Merge branch 'ks/submodule-add-message-fix' into jch
Message regression fix. * ks/submodule-add-message-fix: submodule--helper: fix incorrect newlines in an error message
-rw-r--r--builtin/submodule--helper.c36
1 files changed, 22 insertions, 14 deletions
diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c
index 88ce6be..697a1e5 100644
--- a/builtin/submodule--helper.c
+++ b/builtin/submodule--helper.c
@@ -2998,7 +2998,7 @@ struct add_data {
};
#define ADD_DATA_INIT { .depth = -1 }
-static void show_fetch_remotes(FILE *output, const char *git_dir_path)
+static void show_fetch_remotes(struct strbuf *msg, const char *git_dir_path)
{
struct child_process cp_remote = CHILD_PROCESS_INIT;
struct strbuf sb_remote_out = STRBUF_INIT;
@@ -3014,7 +3014,7 @@ static void show_fetch_remotes(FILE *output, const char *git_dir_path)
while ((next_line = strchr(line, '\n')) != NULL) {
size_t len = next_line - line;
if (strip_suffix_mem(line, &len, " (fetch)"))
- fprintf(output, " %.*s\n", (int)len, line);
+ strbuf_addf(msg, " %.*s\n", (int)len, line);
line = next_line + 1;
}
}
@@ -3046,19 +3046,27 @@ static int add_submodule(const struct add_data *add_data)
if (is_directory(submod_gitdir_path)) {
if (!add_data->force) {
- fprintf(stderr, _("A git directory for '%s' is found "
- "locally with remote(s):"),
- add_data->sm_name);
- show_fetch_remotes(stderr, submod_gitdir_path);
+ struct strbuf msg = STRBUF_INIT;
+ char *die_msg;
+
+ strbuf_addf(&msg, _("A git directory for '%s' is found "
+ "locally with remote(s):\n"),
+ add_data->sm_name);
+
+ show_fetch_remotes(&msg, submod_gitdir_path);
free(submod_gitdir_path);
- die(_("If you want to reuse this local git "
- "directory instead of cloning again from\n"
- " %s\n"
- "use the '--force' option. If the local git "
- "directory is not the correct repo\n"
- "or if you are unsure what this means, choose "
- "another name with the '--name' option.\n"),
- add_data->realrepo);
+
+ strbuf_addf(&msg, _("If you want to reuse this local git "
+ "directory instead of cloning again from\n"
+ " %s\n"
+ "use the '--force' option. If the local git "
+ "directory is not the correct repo\n"
+ "or you are unsure what this means choose "
+ "another name with the '--name' option."),
+ add_data->realrepo);
+
+ die_msg = strbuf_detach(&msg, NULL);
+ die("%s", die_msg);
} else {
printf(_("Reactivating local git directory for "
"submodule '%s'\n"), add_data->sm_name);