help: correct logic error in combining --all and --guides

The --all and --guides commands could be combined, which wouldn't have
any impact on the output except for:

    git help --all --guides --no-verbose

Listing the guide alongside that output was clearly not intended, so
let's error out here. See 002b726a40 (builtin/help.c: add
list_common_guides_help() function, 2013-04-02) for the initial
implementation.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ævar Arnfjörð Bjarmason 2021-09-22 00:40:35 +02:00 committed by Junio C Hamano
parent 1ed4bef6b4
commit 0a5940fbe7
2 changed files with 10 additions and 1 deletions

View File

@ -559,6 +559,10 @@ int cmd_help(int argc, const char **argv, const char *prefix)
usage_msg_opt(_("--config and --all cannot be combined"),
builtin_help_usage, builtin_help_options);
if (show_all && show_guides)
usage_msg_opt(_("--config and --guides cannot be combined"),
builtin_help_usage, builtin_help_options);
if (show_config && show_guides)
usage_msg_opt(_("--config and --guides cannot be combined"),
builtin_help_usage, builtin_help_options);

View File

@ -36,7 +36,12 @@ test_expect_success 'basic help commands' '
test_expect_success 'invalid usage' '
test_expect_code 129 git help -g add &&
test_expect_code 129 git help -a -c
test_expect_code 129 git help -a -c &&
test_expect_code 129 git help -g add &&
test_expect_code 129 git help -a -g &&
test_expect_code 129 git help -g -c
'
test_expect_success "works for commands and guides by default" '