Skip to content

Commit

Permalink
commit: honor advice.statusHints when rejecting an empty commit
Browse files Browse the repository at this point in the history
In ea9882b (commit: disable status hints when writing to
COMMIT_EDITMSG, 2013-09-12) the intent was to disable status hints
when writing to COMMIT_EDITMSG, because giving the hints in the "git
status" like output in the commit message template are too late to
be useful (they say things like "'git add' to stage", but that is
only possible after aborting the current "git commit" session).

But there is one case that the hints can be useful: When the current
attempt to commit is rejected because no change is recorded in the
index.  The message is given and "git commit" errors out, so the
hints can immediately be followed by the user.  Teach the codepath
to honor the configuration variable.

Signed-off-by: Heba Waly <heba.waly@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
HebaWaly authored and gitster committed Dec 19, 2019
1 parent 53a06cf commit 5c4f55f
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 0 deletions.
1 change: 1 addition & 0 deletions builtin/commit.c
Expand Up @@ -944,6 +944,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
*/
if (!committable && whence != FROM_MERGE && !allow_empty &&
!(amend && is_a_merge(current_head))) {
s->hints = advice_status_hints;
s->display_comment_prefix = old_display_comment_prefix;
run_status(stdout, index_file, prefix, 0, s);
if (amend)
Expand Down
9 changes: 9 additions & 0 deletions t/t7500-commit-template-squash-signoff.sh
Expand Up @@ -382,4 +382,13 @@ test_expect_success 'check commit with unstaged rename and copy' '
)
'

test_expect_success 'commit without staging files fails and displays hints' '
echo "initial" >file &&
git add file &&
git commit -m initial &&
echo "changes" >>file &&
test_must_fail git commit -m update >actual &&
test_i18ngrep "no changes added to commit (use \"git add\" and/or \"git commit -a\")" actual
'

test_done

0 comments on commit 5c4f55f

Please sign in to comment.