diff mbox series

submodule--helper: fix incorrect newlines in an error message

Message ID 20210805192803.679948-1-kaartic.sivaraam@gmail.com (mailing list archive)
State New, archived
Headers show
Series submodule--helper: fix incorrect newlines in an error message | expand

Commit Message

Kaartic Sivaraam Aug. 5, 2021, 7:28 p.m. UTC
A refactoring[1] done as part of the recent conversion of
'git submodule add' to builtin, changed the error message
shown when a Git directory already exists locally for a submodule
name. Before the refactoring, the error used to appear like so:

  --- 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
  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  ---

After the refactoring the error started appearing like so:

 --- 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
  /me/git-repos-for-test/sub
  use the '--force' option. If the local git directory is not the correct repo
  or if you are unsure what this means, choose another name with the '--name' option.

  ---  END OF OUTPUT  ---

As one could observe the remote information is printed along with the
first line rather than on its own line. Also, there's an additional
newline following output.

Make the error message consistent with the error message that used to be
printed before the refactoring.

[1]: https://lore.kernel.org/git/20210710074801.19917-5-raykar.ath@gmail.com/#t

Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
---

Even with this patch, the error message is still not fully consistent with the one that
used to be printed before the refactoring. Here's the diff:

3c3
< If you want to reuse this local git directory instead of cloning again from
---
> fatal: If you want to reuse this local git directory instead of cloning again from
6c6
< or you are unsure what this means choose another name with the '--name' option.
---
> or if you are unsure what this means, choose another name with the '--name' option.


The first part shows that it is additionally prefixed with 'fatal: '. While the 'fatal :' prefix
made sense in other cases, I wonder if it's helpful in this case as the message being
printed is an informative one. Should we avoid using 'die' to print this message?

The second part of the diff shows that there's some small grammatcial tweaks in the last
line. While I appreciate the intention, I'm not very sure if this change is a strict
improvement. I wonder about this as the original sounded good enough to me and thus it
feels like the change in message is triggering unnecesssary translation work. Should
we avoid the change? Or does it actually seem like an improvement to the message?


builtin/submodule--helper.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Atharva Raykar Aug. 6, 2021, 6:29 a.m. UTC | #1
Kaartic Sivaraam <kaartic.sivaraam@gmail.com> writes:

> A refactoring[1] done as part of the recent conversion of
> 'git submodule add' to builtin, changed the error message
> shown when a Git directory already exists locally for a submodule
> name. Before the refactoring, the error used to appear like so:
>
> [...]
>
> As one could observe the remote information is printed along with the
> first line rather than on its own line. Also, there's an additional
> newline following output.
>
> Make the error message consistent with the error message that used to be
> printed before the refactoring.

Thanks for catching this and sending a patch!

> [1]: https://lore.kernel.org/git/20210710074801.19917-5-raykar.ath@gmail.com/#t
>
> Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
> ---
>
> Even with this patch, the error message is still not fully consistent with the one that
> used to be printed before the refactoring. Here's the diff:
>
> 3c3
> < If you want to reuse this local git directory instead of cloning again from
> ---
>> fatal: If you want to reuse this local git directory instead of cloning again from
> 6c6
> < or you are unsure what this means choose another name with the '--name' option.
> ---
>> or if you are unsure what this means, choose another name with the '--name' option.
>
>
> The first part shows that it is additionally prefixed with 'fatal: '. While the 'fatal :' prefix
> made sense in other cases, I wonder if it's helpful in this case as the message being
> printed is an informative one. Should we avoid using 'die' to print this message?

I had initially implemented that message as an fprintf() with return for
the same reason, but Junio suggested we die() instead to keep the
conversion more faithful to the original [1].

Although now that I think of it, it feels like a tradeoff between
faithfulness to the original code and faithfulness to the original
behaviour. I also think this change is fairly inconsequential and easily
reversible so I am fine with it being done either way.

[1] https://lore.kernel.org/git/xmqqk0n03k84.fsf@gitster.g/

> The second part of the diff shows that there's some small grammatcial tweaks in the last
> line. While I appreciate the intention, I'm not very sure if this change is a strict
> improvement. I wonder about this as the original sounded good enough to me and thus it
> feels like the change in message is triggering unnecesssary translation work. Should
> we avoid the change? Or does it actually seem like an improvement to the message?

I don't think that extra 'if' was intended. I think it's better to avoid
the change I inadvertently introduced.

> builtin/submodule--helper.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c
> index 3cbde305f3..560be07091 100644
> --- a/builtin/submodule--helper.c
> +++ b/builtin/submodule--helper.c
> @@ -2824,7 +2824,7 @@ 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):"),
> +						  "locally with remote(s):\n"),
>  					add_data->sm_name);
>  				show_fetch_remotes(stderr, add_data->sm_name,
>  						   submod_gitdir_path);
> @@ -2835,7 +2835,7 @@ 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 "
> -				      "another name with the '--name' option.\n"),
> +				      "another name with the '--name' option."),
>  				    add_data->realrepo);
>  			} else {
>  				printf(_("Reactivating local git directory for "


---
Atharva Raykar
ಅಥರ್ವ ರಾಯ್ಕರ್
अथर्व रायकर
Kaartic Sivaraam Aug. 6, 2021, 7:07 p.m. UTC | #2
On 06/08/21 11:59 am, Atharva Raykar wrote:
> 
> Kaartic Sivaraam <kaartic.sivaraam@gmail.com> writes:
> 
>> A refactoring[1] done as part of the recent conversion of
>> 'git submodule add' to builtin, changed the error message
>> shown when a Git directory already exists locally for a submodule
>> name. Before the refactoring, the error used to appear like so:
>>
>> [...]
>>
>> As one could observe the remote information is printed along with the
>> first line rather than on its own line. Also, there's an additional
>> newline following output.
>>
>> Make the error message consistent with the error message that used to be
>> printed before the refactoring.
> 
> Thanks for catching this and sending a patch!
> 
>> [1]: https://lore.kernel.org/git/20210710074801.19917-5-raykar.ath@gmail.com/#t
>>
>> Signed-off-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
>> ---
>>
>> Even with this patch, the error message is still not fully consistent with the one that
>> used to be printed before the refactoring. Here's the diff:
>>
>> 3c3
>> < If you want to reuse this local git directory instead of cloning again from
>> ---
>>> fatal: If you want to reuse this local git directory instead of cloning again from
>> 6c6
>> < or you are unsure what this means choose another name with the '--name' option.
>> ---
>>> or if you are unsure what this means, choose another name with the '--name' option.
>>
>>
>> The first part shows that it is additionally prefixed with 'fatal: '. While the 'fatal :' prefix
>> made sense in other cases, I wonder if it's helpful in this case as the message being
>> printed is an informative one. Should we avoid using 'die' to print this message?
> 
> I had initially implemented that message as an fprintf() with return for
> the same reason, but Junio suggested we die() instead to keep the
> conversion more faithful to the original [1].
> 
> Although now that I think of it, it feels like a tradeoff between
> faithfulness to the original code and faithfulness to the original
> behaviour. I also think this change is fairly inconsequential and easily
> reversible so I am fine with it being done either way.
> 
> [1] https://lore.kernel.org/git/xmqqk0n03k84.fsf@gitster.g/
> 

I remember this discussion. But ...

   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
     /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.

... I'm not able to understand how the 'fatal: ' prefix in the _middle_ of this
information message would help the reader in any way :-/

If it had occurred at the beginning of the message that would've been different
and likely useful too. I'll try sending a re-roll with a new change that moves
the fatal to the beginning of the message and see how it goes.

>> The second part of the diff shows that there's some small grammatcial tweaks in the last
>> line. While I appreciate the intention, I'm not very sure if this change is a strict
>> improvement. I wonder about this as the original sounded good enough to me and thus it
>> feels like the change in message is triggering unnecesssary translation work. Should
>> we avoid the change? Or does it actually seem like an improvement to the message?
> 
> I don't think that extra 'if' was intended. I think it's better to avoid
> the change I inadvertently introduced.
> 

I guess I spoke too soon. Regardless of the additional "... if ..." in the message,
the conversion might introduce translation work as the variable substitution varies
between shell and C. There isn't much we could do about this. I'm not sure if
translators use any strategy to avoid redundant work during conversions like these.
Jiang Xin (Cc-ed) might be able to shed some light.

That said, I'll still revert the extra 'if' as you say it was introduced inadvertently.
diff mbox series

Patch

diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c
index 3cbde305f3..560be07091 100644
--- a/builtin/submodule--helper.c
+++ b/builtin/submodule--helper.c
@@ -2824,7 +2824,7 @@  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):"),
+						  "locally with remote(s):\n"),
 					add_data->sm_name);
 				show_fetch_remotes(stderr, add_data->sm_name,
 						   submod_gitdir_path);
@@ -2835,7 +2835,7 @@  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 "
-				      "another name with the '--name' option.\n"),
+				      "another name with the '--name' option."),
 				    add_data->realrepo);
 			} else {
 				printf(_("Reactivating local git directory for "