add: use advise_if_enabled for ADVICE_ADD_EMPTY_PATHSPEC

Since 93b0d86aaf (git-add: error out when given no arguments., 2006-12-20) we display a message when no arguments are given to "git add". Part of that message was converted to advice in bf66db37f1 (add: use advise function to display hints, 2020-01-07). Following the same line of reasoning as in the previous commit, it is sensible to use advise_if_enabled() here. Therefore, use advise_if_enabled() in builtin/add.c to show the ADVICE_ADD_EMPTY_PATHSPEC advice, and don't bother checking there the visibility of the advice or displaying the instruction on how to disable it. Also add a test for these messages, in order to detect a possible change in them. Signed-off-by: Rubén Justo <rjusto@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Rubén Justo committed Mar 30, 2024 at 15:08 UTC 1028db00f7bc47e2cecda8a4a9967fcc05fffb48
2 files changed +12 -4
builtin/add.c
+2 -4
@@ -438,10 +438,8 @@ int cmd_add(int argc, const char **argv, const char *prefix)
438
439 if (require_pathspec && pathspec.nr == 0) {
440 fprintf(stderr, _("Nothing specified, nothing added.\n"));
441 - if (advice_enabled(ADVICE_ADD_EMPTY_PATHSPEC))
442 - advise( _("Maybe you wanted to say 'git add .'?\n"
443 - "Turn this message off by running\n"
444 - "\"git config advice.addEmptyPathspec false\""));
441 + advise_if_enabled(ADVICE_ADD_EMPTY_PATHSPEC,
442 + _("Maybe you wanted to say 'git add .'?"));
443 return 0;
444 }
445
t/t3700-add.sh
+10
@@ -28,6 +28,16 @@ test_expect_success 'Test of git add' '
28 touch foo && git add foo
29 '
30
31 +test_expect_success 'Test with no pathspecs' '
32 + cat >expect <<-EOF &&
33 + Nothing specified, nothing added.
34 + hint: Maybe you wanted to say ${SQ}git add .${SQ}?
35 + hint: Disable this message with "git config advice.addEmptyPathspec false"
36 + EOF
37 + git add 2>actual &&
38 + test_cmp expect actual
39 +'
40 +
41 test_expect_success 'Post-check that foo is in the index' '
42 git ls-files foo | grep foo
43 '