Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Sébastien Guimmara authored and Junio C Hamano committed May 21, 2015
1 parent 2f5b495 commit 2241477
Showing 1 changed file with 23 additions and 1 deletion.
24 changes: 23 additions & 1 deletion help.c
Expand Up @@ -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));
Expand Down

0 comments on commit 2241477

Please sign in to comment.