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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



"Santi Bejar" <sbejar@xxxxxxxxx> 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 ;-)

> 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.

> -static struct cmdname_help common_cmds[] = {"
> +struct topicname_help
> +{
> +    char name[23];
> +    char subtopic[10];
> +    char help[80];
> +};

Likewise.

> -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.

>       ${
>              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...

> 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)
> ...

> +	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.

> +	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.

> +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.

> 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.
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux