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> Signed-off-by: Hu Jialun <hujialun@xxxxxxxxxxxxxxx> --- The tests are also amended in line with the new string. builtin/commit.c | 8 ++++++-- t/t7500-commit-template-squash-signoff.sh | 4 ++-- t/t7502-commit-porcelain.sh | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/builtin/commit.c b/builtin/commit.c index 815b408002..b681dcc83c 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -918,7 +918,9 @@ static int prepare_to_commit(const char *index_file, const char *prefix, if (cleanup_mode == COMMIT_MSG_CLEANUP_ALL) { status_printf_ln(s, GIT_COLOR_NORMAL, msg_enter_prompt); status_printf_ln(s, GIT_COLOR_NORMAL, ignore_char_prompt, comment_line_char); - status_printf_ln(s, GIT_COLOR_NORMAL, empty_msg_abort_prompt); + if (!allow_empty_message) { + status_printf_ln(s, GIT_COLOR_NORMAL, empty_msg_abort_prompt); + } } else if (cleanup_mode == COMMIT_MSG_CLEANUP_SCISSORS) { if (whence == FROM_COMMIT && !merge_contains_scissors) @@ -926,7 +928,9 @@ static int prepare_to_commit(const char *index_file, const char *prefix, } else { /* COMMIT_MSG_CLEANUP_SPACE, that is. */ status_printf_ln(s, GIT_COLOR_NORMAL, msg_enter_prompt); status_printf_ln(s, GIT_COLOR_NORMAL, keep_char_prompt, comment_line_char); - status_printf_ln(s, GIT_COLOR_NORMAL, empty_msg_abort_prompt); + if (!allow_empty_message) { + status_printf_ln(s, GIT_COLOR_NORMAL, empty_msg_abort_prompt); + } } /* diff --git a/t/t7500-commit-template-squash-signoff.sh b/t/t7500-commit-template-squash-signoff.sh index 7d02f79c0d..812ca45043 100755 --- a/t/t7500-commit-template-squash-signoff.sh +++ b/t/t7500-commit-template-squash-signoff.sh @@ -497,8 +497,8 @@ 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. +# Please enter the commit message for your changes. +# Lines starting with '#' will be ignored. # # Author: A U Thor <author@xxxxxxxxxxx> # diff --git a/t/t7502-commit-porcelain.sh b/t/t7502-commit-porcelain.sh index 38a532d81c..a5217872ca 100755 --- a/t/t7502-commit-porcelain.sh +++ b/t/t7502-commit-porcelain.sh @@ -608,8 +608,8 @@ test_expect_success 'cleanup commit messages (strip option,-F,-e)' ' echo "sample -# Please enter the commit message for your changes. Lines starting -# with '#' will be ignored, and an empty message aborts the commit." >expect +# Please enter the commit message for your changes. +# Lines starting with '#' will be ignored." >expect test_expect_success 'cleanup commit messages (strip option,-F,-e): output' ' test_cmp expect actual -- 2.32.0