Kaartic Sivaraam <[email protected]> writes:
> The check for whether the template given to 'git commit' is untouched
> is done before the empty message check. This results in a wrong error
> message being displayed in the following case. When the user removes
> everything in template completely to abort the commit he is shown the
> "template untouched" error which is wrong. He should be shown the
> "empty message" error.
>
> Do the empty message check before checking for an untouched template
> thus fixing this issue.
>
> Signed-off-by: Kaartic Sivaraam <[email protected]>
> ---
> builtin/commit.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
Makes sense to me.
> diff --git a/builtin/commit.c b/builtin/commit.c
> index aff6bf7aa..9c299d792 100644
> --- a/builtin/commit.c
> +++ b/builtin/commit.c
> @@ -1736,19 +1736,19 @@ int cmd_commit(int argc, const char **argv, const
> char *prefix)
> if (verbose || /* Truncate the message just before the diff, if any. */
> cleanup_mode == CLEANUP_SCISSORS)
> strbuf_setlen(&sb, wt_status_locate_end(sb.buf, sb.len));
> -
> if (cleanup_mode != CLEANUP_NONE)
> strbuf_stripspace(&sb, cleanup_mode == CLEANUP_ALL);
> - if (template_untouched(&sb) && !allow_empty_message) {
> - rollback_index_files();
> - fprintf(stderr, _("Aborting commit; you did not edit the
> message.\n"));
> - exit(1);
> - }
> +
> if (message_is_empty(&sb) && !allow_empty_message) {
> rollback_index_files();
> fprintf(stderr, _("Aborting commit due to empty commit
> message.\n"));
> exit(1);
> }
> + if (template_untouched(&sb) && !allow_empty_message) {
> + rollback_index_files();
> + fprintf(stderr, _("Aborting commit; you did not edit the
> message.\n"));
> + exit(1);
> + }
>
> if (amend) {
> const char *exclude_gpgsig[2] = { "gpgsig", NULL };