Subject: Re: [PATCH v3 2/2] commit: remove irrelavent prompt on `--allow-empty-message`

From: Junio C Hamano <[email-masked]>
Date: Fri, 09 Jul 2021 12:14:09 -0700

Hu Jialun <[email-masked]> writes:

> Even when the `--allow-empty-message` option is given, "git commit"
> offers an interactive editor session with prefilled message that says
> the commit will be aborted if the buffer is emptied, which is wrong.
>
> Remove the "an empty message aborts" part from the message when the
> option is given to fix it.

The updated log message is much better than the old iteration, where
the "empty message aborts" was called "irrelevant" when it is actively
"wrong".  Now we call it "wrong".

Let's update the title of the commit to match, e.g.

    commit: tweak cleanup hint when --allow-empty-message is in effect

or something along that line.

> +		const char *hint_cleanup_all = allow_empty_message ?
> +			_("Please enter the commit message for your changes."
> +			  " Lines starting\nwith '%c' will be ignored.\n") :
> +			_("Please enter the commit message for your changes."
> +			  " Lines starting\nwith '%c' will be ignored, and an empty"
> +			  " message aborts the commit.\n");
> +		const char *hint_cleanup_space = allow_empty_message ?
> +			_("Please enter the commit message for your changes."
> +			  " Lines starting\n"
> +			  "with '%c' will be kept; you may remove them"
> +			  " yourself if you want to.\n") :
> +			_("Please enter the commit message for your changes."
> +			  " Lines starting\n"
> +			  "with '%c' will be kept; you may remove them"
> +			  " yourself if you want to.\n"
> +			  "An empty message aborts the commit.\n");

Local convention in this file seems to be that multi-line ?:
expressions are folded with ? and : operators at the beginning, not
at the end, of the lines, e.g. I see this construct in the same file.

			reflog_msg = is_from_cherry_pick(whence)
					? "commit (cherry-pick)"
					: is_from_rebase(whence)
					? "commit (rebase)"
					: "commit";

So, let's mimick and make the above more like this:

		const char *hint_cleanup_all = allow_empty_message
			? _("Please enter the commit message for your changes."
			    " Lines starting\nwith '%c' will be ignored.\n")
			: _("Please enter the commit message for your changes."
			    " Lines starting\nwith '%c' will be ignored, and an empty"
			    " message aborts the commit.\n");

> diff --git a/t/t7500-commit-template-squash-signoff.sh b/t/t7500-commit-template-squash-signoff.sh
> index 7d02f79c0d..54c2082acb 100755
> --- a/t/t7500-commit-template-squash-signoff.sh
> +++ b/t/t7500-commit-template-squash-signoff.sh
> @@ -498,7 +498,7 @@ test_expect_success 'invalid message options when using --fixup' '
>  cat >expected-template <<EOF
>  
>  # Please enter the commit message for your changes. Lines starting
> -# with '#' will be ignored, and an empty message aborts the commit.
> +# with '#' will be ignored.
>  #
>  # Author:    A U Thor <[email-masked]>
>  #

Perfect.