]> git.ipfire.org Git - thirdparty/git.git/commit
builtin: also setup gently for --help-all
authorD. Ben Knoble <ben.knoble+github@gmail.com>
Sun, 3 Aug 2025 16:10:27 +0000 (12:10 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 8 Aug 2025 18:13:12 +0000 (11:13 -0700)
commit129b3632f35a1c46fb30d9e6f275a95119a9d521
treebc1102392063a4691336989905a48b580c475941
parentfe54b9ef02cc8c5499fa83f8ed51a614b1014c0b
builtin: also setup gently for --help-all

Git experts often check the help summary of a command to make sure they
spell options right when suggesting advice to colleagues. Further, they
might check hidden options when responding to queries about deprecated
options like git-rebase(1)'s "preserve merges" option. But some commands
don't support "--help-all" outside of a git directory. Running (for
example)

    git rebase --help-all

outside a directory fails in "setup_git_directory", erroring with the
localized form of

    fatal: not a git repository (or any of the parent directories): .git

Like 99caeed05d (Let 'git <command> -h' show usage without a git dir,
2009-11-09), we want to show the "--help-all" output even without a git
dir. Make "--help-all" where we expect "-h" to mean
"setup_git_directory_gently", and interpose early in the natural place
("show_usage_with_options_if_asked").

Do the same for usage callers with show_usage_if_asked.

The exception is merge-recursive, whose help block doesn't use newer
APIs.

Best-viewed-with: --ignore-space-change
Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/merge-recursive.c
git.c
parse-options.c
t/t1517-outside-repo.sh
usage.c