git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: "Santi Bejar" <sbejar@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] git help: sort commands by topi
Date: Mon, 18 Feb 2008 02:15:35 -0800	[thread overview]
Message-ID: <7vlk5ipo3c.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <87hcg77i6i.fsf@gmail.com> (Santi Bejar's message of "Sun, 17 Feb 2008 15:48:21 +0100")

"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 ;-)

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

  reply	other threads:[~2008-02-18 10:16 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-17 14:48 [PATCH] git help: sort commands by topi Santi Bejar
2008-02-18 10:15 ` Junio C Hamano [this message]
2008-02-18 17:16   ` Santi Béjar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7vlk5ipo3c.fsf@gitster.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=sbejar@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).