]> git.ipfire.org Git - thirdparty/git.git/commitdiff
add: use advise_if_enabled for ADVICE_ADD_EMPTY_PATHSPEC
authorRubén Justo <rjusto@gmail.com>
Sat, 30 Mar 2024 14:08:59 +0000 (15:08 +0100)
committerJunio C Hamano <gitster@pobox.com>
Sun, 31 Mar 2024 00:55:01 +0000 (17:55 -0700)
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>
builtin/add.c
t/t3700-add.sh

index 092d3120b5d99c3729946cb00cd40b3fef58f4da..0f981f5aa16761798088a0041137bdc9f04359c0 100644 (file)
@@ -438,10 +438,8 @@ int cmd_add(int argc, const char **argv, const char *prefix)
 
        if (require_pathspec && pathspec.nr == 0) {
                fprintf(stderr, _("Nothing specified, nothing added.\n"));
-               if (advice_enabled(ADVICE_ADD_EMPTY_PATHSPEC))
-                       advise( _("Maybe you wanted to say 'git add .'?\n"
-                               "Turn this message off by running\n"
-                               "\"git config advice.addEmptyPathspec false\""));
+               advise_if_enabled(ADVICE_ADD_EMPTY_PATHSPEC,
+                                 _("Maybe you wanted to say 'git add .'?"));
                return 0;
        }
 
index 76c2c9e7b068a559545df019b362629089f37907..681081e0d5160158d1bccf4c74c2c9a8372f26f3 100755 (executable)
@@ -28,6 +28,16 @@ test_expect_success 'Test of git add' '
        touch foo && git add foo
 '
 
+test_expect_success 'Test with no pathspecs' '
+       cat >expect <<-EOF &&
+       Nothing specified, nothing added.
+       hint: Maybe you wanted to say ${SQ}git add .${SQ}?
+       hint: Disable this message with "git config advice.addEmptyPathspec false"
+       EOF
+       git add 2>actual &&
+       test_cmp expect actual
+'
+
 test_expect_success 'Post-check that foo is in the index' '
        git ls-files foo | grep foo
 '