From: Sébastien Guimmara Date: Mon, 25 May 2015 17:25:37 GMT Subject: Re: [PATCH v11 5/5] help: respect new common command grouping Message-ID: <55635B11.8000906@gmail.com> In-Reply-To: On 05/21/2015 08:04 PM, Eric Sunshine wrote: > On Thu, May 21, 2015 at 1:39 PM, Sébastien Guimmara > wrote: >> '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: >> >> The most commonly used git commands are: > > The above line in the commit message does not match the actual output: > > "These are common Git commands used in various situations:" > Thanks. Will correct this. >> 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 >> Signed-off-by: Ramsay Jones >> Signed-off-by: Sébastien Guimmara >> --- >> diff --git a/help.c b/help.c >> index 2072a87..8f72051 100644 >> --- a/help.c >> +++ b/help.c >> @@ -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)); >> -- >> 2.4.0.GIT