mirror of
https://github.com/git/git.git
synced 2024-11-18 22:23:55 +01:00
help: add "-a --verbose" to list all commands with synopsis
This lists all recognized commands [1] by category. The group order follows closely git.txt. [1] We may actually show commands that are not built (e.g. if you set NO_PERL you don't have git-instaweb but it's still listed here). I ignore the problem because on Linux a git package could be split anyway. The "git-core" package may not contain git-instaweb even if it's built because it may end up in a separate package. We can't know anyway. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
3c7777672b
commit
63eae83f8f
@ -8,7 +8,7 @@ git-help - Display help information about Git
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git help' [-a|--all] [-g|--guide]
|
||||
'git help' [-a|--all [--verbose]] [-g|--guide]
|
||||
[-i|--info|-m|--man|-w|--web] [COMMAND|GUIDE]
|
||||
|
||||
DESCRIPTION
|
||||
@ -42,6 +42,8 @@ OPTIONS
|
||||
--all::
|
||||
Prints all the available commands on the standard output. This
|
||||
option overrides any given command or guide name.
|
||||
When used with `--verbose` print description for all recognized
|
||||
commands.
|
||||
|
||||
-g::
|
||||
--guides::
|
||||
|
@ -36,6 +36,7 @@ static const char *html_path;
|
||||
|
||||
static int show_all = 0;
|
||||
static int show_guides = 0;
|
||||
static int verbose;
|
||||
static unsigned int colopts;
|
||||
static enum help_format help_format = HELP_FORMAT_NONE;
|
||||
static int exclude_guides;
|
||||
@ -48,6 +49,7 @@ static struct option builtin_help_options[] = {
|
||||
HELP_FORMAT_WEB),
|
||||
OPT_SET_INT('i', "info", &help_format, N_("show info page"),
|
||||
HELP_FORMAT_INFO),
|
||||
OPT__VERBOSE(&verbose, N_("print command description")),
|
||||
OPT_END(),
|
||||
};
|
||||
|
||||
@ -463,6 +465,11 @@ int cmd_help(int argc, const char **argv, const char *prefix)
|
||||
|
||||
if (show_all) {
|
||||
git_config(git_help_config, NULL);
|
||||
if (verbose) {
|
||||
setup_pager();
|
||||
list_all_cmds_help();
|
||||
return 0;
|
||||
}
|
||||
printf(_("usage: %s%s"), _(git_usage_string), "\n\n");
|
||||
load_command_list("git-", &main_cmds, &other_cmds);
|
||||
list_commands(colopts, &main_cmds, &other_cmds);
|
||||
|
16
help.c
16
help.c
@ -27,6 +27,17 @@ static struct category_description common_categories[] = {
|
||||
{ CAT_remote, N_("collaborate (see also: git help workflows)") },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static struct category_description main_categories[] = {
|
||||
{ CAT_mainporcelain, N_("Main Porcelain Commands") },
|
||||
{ CAT_ancillarymanipulators, N_("Ancillary Commands / Manipulators") },
|
||||
{ CAT_ancillaryinterrogators, N_("Ancillary Commands / Interrogators") },
|
||||
{ CAT_foreignscminterface, N_("Interacting with Others") },
|
||||
{ CAT_plumbingmanipulators, N_("Low-level Commands / Manipulators") },
|
||||
{ CAT_plumbinginterrogators, N_("Low-level Commands / Interrogators") },
|
||||
{ CAT_synchingrepositories, N_("Low-level Commands / Synching Repositories") },
|
||||
{ CAT_purehelpers, N_("Low-level Commands / Internal Helpers") },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static const char *drop_prefix(const char *name)
|
||||
{
|
||||
@ -352,6 +363,11 @@ void list_cmds_by_category(struct string_list *list,
|
||||
}
|
||||
}
|
||||
|
||||
void list_all_cmds_help(void)
|
||||
{
|
||||
print_cmd_by_category(main_categories);
|
||||
}
|
||||
|
||||
int is_in_cmdlist(struct cmdnames *c, const char *s)
|
||||
{
|
||||
int i;
|
||||
|
2
help.h
2
help.h
@ -19,6 +19,8 @@ static inline void mput_char(char c, unsigned int num)
|
||||
}
|
||||
|
||||
extern void list_common_cmds_help(void);
|
||||
extern void list_all_cmds_help(void);
|
||||
|
||||
extern void list_all_main_cmds(struct string_list *list);
|
||||
extern void list_all_other_cmds(struct string_list *list);
|
||||
extern void list_cmds_by_category(struct string_list *list,
|
||||
|
@ -25,6 +25,15 @@ test_expect_success "setup" '
|
||||
EOF
|
||||
'
|
||||
|
||||
# make sure to exercise these code paths, the output is a bit tricky
|
||||
# to verify
|
||||
test_expect_success 'basic help commands' '
|
||||
git help >/dev/null &&
|
||||
git help -a >/dev/null &&
|
||||
git help -g >/dev/null &&
|
||||
git help -av >/dev/null
|
||||
'
|
||||
|
||||
test_expect_success "works for commands and guides by default" '
|
||||
configure_help &&
|
||||
git help status &&
|
||||
|
Loading…
Reference in New Issue
Block a user