1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-07 04:36:08 +02:00

help: respect new common command grouping

'git help' shows common commands in alphabetical order:

The most commonly used git commands are:
   add        Add file contents to the index
   bisect     Find by binary search the change that introduced a bug
   branch     List, create, or delete branches
   checkout   Checkout a branch or paths to the working tree
   clone      Clone a repository into a new directory
   commit     Record changes to the repository
   [...]

without any indication of how commands relate to high-level
concepts or each other. Revise the output to explain their relationship
with the typical Git workflow:

  These are common Git commands used in various situations:

  start a working area (see also: git help tutorial)
     clone      Clone a repository into a new directory
     init       Create an empty Git repository or reinitialize [...]

  work on the current change (see also: git help everyday)
     add        Add file contents to the index
     reset      Reset current HEAD to the specified state

  examine the history and state (see also: git help revisions)
     log        Show commit logs
     status     Show the working tree status

     [...]

Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Sébastien Guimmara <sebastien.guimmara@gmail.com>
Reviewed-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Sébastien Guimmara 2015-05-21 19:39:22 +02:00 committed by Junio C Hamano
parent 2f5b4950b9
commit 224147704a

24
help.c
View File

@ -218,17 +218,39 @@ void list_commands(unsigned int colopts,
}
}
static int cmd_group_cmp(const void *elem1, const void *elem2)
{
const struct cmdname_help *e1 = elem1;
const struct cmdname_help *e2 = elem2;
if (e1->group < e2->group)
return -1;
if (e1->group > e2->group)
return 1;
return strcmp(e1->name, e2->name);
}
void list_common_cmds_help(void)
{
int i, longest = 0;
int current_grp = -1;
for (i = 0; i < ARRAY_SIZE(common_cmds); i++) {
if (longest < strlen(common_cmds[i].name))
longest = strlen(common_cmds[i].name);
}
puts(_("The most commonly used git commands are:"));
qsort(common_cmds, ARRAY_SIZE(common_cmds),
sizeof(common_cmds[0]), cmd_group_cmp);
puts(_("These are common Git commands used in various situations:"));
for (i = 0; i < ARRAY_SIZE(common_cmds); i++) {
if (common_cmds[i].group != current_grp) {
printf("\n%s\n", _(common_cmd_groups[common_cmds[i].group]));
current_grp = common_cmds[i].group;
}
printf(" %s ", common_cmds[i].name);
mput_char(' ', longest - strlen(common_cmds[i].name));
puts(_(common_cmds[i].help));