git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] git help: sort commands by topi

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 18, 2008, 10:15 UTC
Message-ID
<7vlk5ipo3c.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<87hcg77i6i.fsf@gmail.com>
"Santi Bejar" <sbejar@gmail.com> writes:
> P.D: Does anyone know how can I know the reason for the drops?
I'd love to know that myself.

It would be interesting to install the kernel's checkpatch.pl as anti-bogo-style filter on the mailing list ;-)

Show 14 quoted lines
> diff --git a/generate-cmdlist.sh b/generate-cmdlist.sh
> index a2913c2..ec623dd 100755
> --- a/generate-cmdlist.sh
> +++ b/generate-cmdlist.sh
> @@ -3,22 +3,36 @@
>  echo "/* Automatically generated by $0 */
>  struct cmdname_help
>  {
> -    char name[16];
> +    char name[23];
>      char help[80];
> +    char topic[22];
> +    char subtopic[10];
>  };

These limits are very magic. If you are generating them in the script perhaps you would want to count bytes?

I dunno. Honestly, I am not very interested in this patch myself.

	Side Note: my not being interested does not mean I
        strongly oppose to its inclusion (I do not even care).
        It is just that I won't be the one who will be pushing
        for its inclusion, and you would want supporters other
        than me to push for it.
Show 7 quoted lines
> -static struct cmdname_help common_cmds[] = {"
> +struct topicname_help
> +{
> +    char name[23];
> +    char subtopic[10];
> +    char help[80];
> +};
Likewise.
Show 8 quoted lines
> -sed -n -e 's/^git-\([^ 	]*\)[ 	].* common.*/\1/p' command-list.txt |
> -sort |
> -while read cmd
> +static struct cmdname_help cmd_list[] = {"
> +
> +sed -n -e 's/^git-\([^ 	]*\)\(.*\)$/\1\2/p' command-list.txt |
> +grep -v deprecated | sort |
> +while read cmd topic subtopic

I do not like this pipeline to send output of sed to an _overly_ loose grep. What happens when we introduce "git-deprecated" command later?

>  do
>       sed -n '
> -     /NAME/,/git-'"$cmd"'/H
> +     /^NAME$/,/git-'"$cmd"'/H
Good tightening.
Show 7 quoted lines
>       ${
>              x
> -            s/.*git-'"$cmd"' - \(.*\)/  {"'"$cmd"'", "\1"},/
> +            s/.*git-'"$cmd"' - \(.*\)/  {"'"$cmd"'", "\1",/
>  	    p
>       }' "Documentation/git-$cmd.txt"
> +     echo  "\"$topic\", \"$subtopic\" },"
Breaks nicely indented entries like:
    {"add", "Add file contents...
Show 6 quoted lines
> diff --git a/help.c b/help.c
> index 6e28ad9..0e3a350 100644
> --- a/help.c
> +++ b/help.c
> @@ -262,20 +262,48 @@ static void list_commands(void)
> ...
Show 7 quoted lines
> +	for (i = 0; i < ARRAY_SIZE(cmd_list); i++) {
> +		if (strcmp(cmd_list[i].topic, topic)) continue;
> +		if (!strcmp(topic_list[i].subtopic,"") &&
> +		    strcmp(cmd_list[i].subtopic, subtopic)) continue;
> +		if (longest < strlen(cmd_list[i].name))
> +			longest = strlen(cmd_list[i].name);
>  	}

Style. A statement comes on its own line, even if it is a "continue" statement.

Show 9 quoted lines
> +	for (i = 0; i < ARRAY_SIZE(cmd_list); i++) {
> +		if (strcmp(cmd_list[i].topic, topic)) continue;
> +		if (!strcmp(topic_list[i].subtopic,"") &&
> +		    strcmp(cmd_list[i].subtopic, subtopic)) continue;
> +			printf("   %s   ", cmd_list[i].name);
> +			mput_char(' ', longest - strlen(cmd_list[i].name));
> +			puts(cmd_list[i].help);
> +	}
> +	putchar('\n');
Likewise.
Show 8 quoted lines
> +void list_topics_help()
> +{
> +	int i;
> +	for (i = 0; i < ARRAY_SIZE(topic_list); i++) {
> +		if(strcmp(topic_list[i].subtopic,"")) continue;
> +		list_topic_cmds_help(topic_list[i].name,"");
>  	}
>  }

Style. Have a SP before '(' if the previous token is not a function name.

Show 13 quoted lines
> diff --git a/topic-list.txt b/topic-list.txt
> new file mode 100644
> index 0000000..2ba11a9
> --- /dev/null
> +++ b/topic-list.txt
> @@ -0,0 +1,12 @@
> +# List of known git topics.
> +# topic name				help
> +common                                  The most commonly used commands
> +mainporcelain                           Main porcelain commands
> ...
> +synchelpers				Synching helper commands
> +purehelpers				Internal helper commands

I wonder if this can be shared with the section headings of Documentation/git.txt; either generate the section headings from this file, or generate this file from the section headings.

Previous: Santi BejarNext: Santi Béjar
Message 2 of 3 in “git help: sort commands by topi”
  1. git help: sort commands by topiSanti Bejar, Feb 17, 2008
  2. Junio C HamanoFeb 18, 2008
  3. Santi BéjarFeb 18, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.