[PATCH v2 0/1] submodule: corret an incorrectly formatted error message
- From
Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
- Date
- Sep 18, 2021, 19:31 UTC
- Message-ID
- <20210918193116.310575-1-kaartic.sivaraam@gmail.com>
- In-Reply-To
- <20210805192803.679948-1-kaartic.sivaraam@gmail.com>
Hi all,
Finally got a chance to send the v2 of this one.
Changes in v2:
- Removed the 'if' from the message as Atharva mentioned that it was added inadvertently
- Moved 'fatal:' prefix from middle of the message to the beginning.
- Expanded the commit message to also mention the output after the change
For reference, the v1 could be found here:
https://public-inbox.org/git/20210805192803.679948-1-kaartic.sivaraam@gmail.com/
... and the range-diff against v1 could be found below. Reviews appreciated.
-- Sivaraam
Kaartic Sivaraam (1): submodule--helper: fix incorrect newlines in an error message
builtin/submodule--helper.c | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-)
Range-diff against v1:
1: c00617bc03 ! 1: c6daed7a92 submodule--helper: fix incorrect newlines in an error message
@@ Commit message
After the refactoring the error started appearing like so:
- --- START OF OUTPUT ---
+ --- START OF OUTPUT ---
$ git submodule add ../sub/ subm
A git directory for 'subm' is found locally with remote(s): origin /me/git-repos-for-test/sub
fatal: If you want to reuse this local git directory instead of cloning again from
@@ Commit message
Make the error message consistent with the error message that used to be
printed before the refactoring.
+ This also moves the 'fatal:' prefix that appears in the middle of the
+ error message to the first line as it would more appropriate to have
+ it in the first line. The output after the change would look like:
+
+ --- START OF OUTPUT ---
+ $ git submodule add ../sub/ subm
+ fatal: A git directory for 'subm' is found locally with remote(s):
+ origin /me/git-repos-for-test/sub
+ If you want to reuse this local git directory instead of cloning again from
+ /me/git-repos-for-test/sub
+ use the '--force' option. If the local git directory is not the correct repo
+ or you are unsure what this means choose another name with the '--name' option.
+ --- END OF OUTPUT ---
+
[1]: https://lore.kernel.org/git/20210710074801.19917-5-raykar.ath@gmail.com/#t
## builtin/submodule--helper.c ##
+@@ builtin/submodule--helper.c: struct add_data {
+ };
+ #define ADD_DATA_INIT { .depth = -1 }
+
+-static void show_fetch_remotes(FILE *output, const char *sm_name, const char *git_dir_path)
++static void show_fetch_remotes(struct strbuf *msg, const char *sm_name, const char *git_dir_path)
+ {
+ struct child_process cp_remote = CHILD_PROCESS_INIT;
+ struct strbuf sb_remote_out = STRBUF_INIT;
+@@ builtin/submodule--helper.c: static void show_fetch_remotes(FILE *output, const char *sm_name, const char *gi
+ 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;
+ }
+ }
@@ builtin/submodule--helper.c: 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 "
+- fprintf(stderr, _("A git directory for '%s' is found "
- "locally with remote(s):"),
-+ "locally with remote(s):\n"),
- add_data->sm_name);
- show_fetch_remotes(stderr, add_data->sm_name,
+- add_data->sm_name);
+- show_fetch_remotes(stderr, add_data->sm_name,
++ 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, add_data->sm_name,
submod_gitdir_path);
-@@ builtin/submodule--helper.c: static int add_submodule(const struct add_data *add_data)
- "use the '--force' option. If the local git "
- "directory is not the correct repo\n"
- "or if you are unsure what this means, choose "
+ 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"),
-+ "another name with the '--name' option."),
- add_data->realrepo);
+- 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);-- 2.32.0.385.gc00617bc03.dirty