]> git.ipfire.org Git - thirdparty/git.git/commitdiff
help: correct usage & behavior of "git help --all"
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Mon, 21 Feb 2022 19:38:49 +0000 (20:38 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 23 Feb 2022 21:41:37 +0000 (13:41 -0800)
Do the same for the "--all" option that I did for "--guides" in
9856ea6785c (help: correct usage & behavior of "git help --guides",
2021-09-22). I.e. we've documented it as ignoring non-option
arguments, let's have it error out instead.

As with other changes made in 62f035aee3f (Merge branch
'ab/help-config-vars', 2021-10-13) this is technically a change in
behavior, but in practice it's just a bug fix. We were ignoring this
before, but by erroring we can simplify our documentation and
synopsis, as well as avoid user confusion as they wonder what the
difference between e.g. "git help --all" and "git help --all status"
is (there wasn't any difference).

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-help.txt
builtin/help.c
t/t0012-help.sh

index cf1d53e94992e699e417ac433ff97d8ec6d72514..d07590c8ff7cef5a86071685eb2dc39e11bddd58 100644 (file)
@@ -9,7 +9,7 @@ SYNOPSIS
 --------
 [verse]
 'git help' [-a|--all] [--[no-]verbose]
-          [[-i|--info] [-m|--man] [-w|--web]] [<command>|<guide>]
+'git help' [[-i|--info] [-m|--man] [-w|--web]] [<command>|<guide>]
 'git help' [-g|--guides]
 'git help' [-c|--config]
 
@@ -46,8 +46,7 @@ OPTIONS
 -------
 -a::
 --all::
-       Prints all the available commands on the standard output. This
-       option overrides any given command or guide name.
+       Prints all the available commands on the standard output.
 
 --verbose::
        When used with `--all` print description for all recognized
index 1c1581ef8508c866c1b43921a59102d2c5d585c6..b682446bbf5e5f73c683dc828fafe154f65e0f1c 100644 (file)
@@ -75,8 +75,8 @@ static struct option builtin_help_options[] = {
 };
 
 static const char * const builtin_help_usage[] = {
-       N_("git help [-a|--all] [--[no-]verbose]]\n"
-          "         [[-i|--info] [-m|--man] [-w|--web]] [<command>]"),
+       N_("git help [-a|--all] [--[no-]verbose]]"),
+       N_("git help [[-i|--info] [-m|--man] [-w|--web]] [<command>]"),
        N_("git help [-g|--guides]"),
        N_("git help [-c|--config]"),
        NULL
@@ -594,6 +594,7 @@ int cmd_help(int argc, const char **argv, const char *prefix)
 
        switch (cmd_mode) {
        case HELP_ACTION_ALL:
+               opt_mode_usage(argc, "--all");
                if (verbose) {
                        setup_pager();
                        list_all_cmds_help();
index 9ac3f5d3c4b3b91d016f5ae56c2182b994b1c1e9..c87730aa920ee5a5f977c579b184ecfb22b720a5 100755 (executable)
@@ -35,6 +35,9 @@ test_expect_success 'basic help commands' '
 '
 
 test_expect_success 'invalid usage' '
+       test_expect_code 129 git help -a add &&
+       test_expect_code 129 git help --all add &&
+
        test_expect_code 129 git help -g add &&
        test_expect_code 129 git help -a -c &&