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. Helped-by: Junio C Hamano <gitster@xxxxxxxxx> Helped-by: Đoàn Trần Công Danh <congdanhqx@xxxxxxxxx> Helped-by: Felipe Contreras <felipe.contreras@xxxxxxxxx> Signed-off-by: Hu Jialun <hujialun@xxxxxxxxxxxxxxx> --- builtin/commit.c | 25 +++++++++++++++-------- t/t7500-commit-template-squash-signoff.sh | 2 +- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/builtin/commit.c b/builtin/commit.c index e68d139dee..cfbc83751a 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -889,15 +889,22 @@ static int prepare_to_commit(const char *index_file, const char *prefix, int ident_shown = 0; int saved_color_setting; struct ident_split ci, ai; - const char *hint_cleanup_all = _("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 = _("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"); - + 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"); if (whence != FROM_COMMIT) { if (cleanup_mode == COMMIT_MSG_CLEANUP_SCISSORS && !merge_contains_scissors) 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 <author@xxxxxxxxxxx> # -- 2.32.0