All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.