threads / patch / 46406

patchcommit: check for empty message before the check for untouched template

Subject: [PATCH] commit: check for empty message before the check for untouched template

## tl;dr

2 messages between Jul 17, 2017 and Jul 17, 2017. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Kaartic Sivaraam· Jul 17, 2017, 15:36 UTC · lore

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 <kaarticsivaraam91196@gmail.com>
---
 builtin/commit.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
Show changes to builtin/commit.c +6 −6
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 };
-- 
2.13.3.973.gaaf39e6bd.dirty
Junio C Hamano· Jul 17, 2017, 20:12 UTC · re: Kaartic Sivaraam · lore

Re: [PATCH] commit: check for empty message before the check for untouched template

Kaartic Sivaraam <kaarticsivaraam91196@gmail.com> writes:
Show 14 quoted lines
> 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 <kaarticsivaraam91196@gmail.com>
> ---
>  builtin/commit.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
Makes sense to me.
Show 30 quoted lines
> 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 };

← back to recent threads