# [PATCH] help: show help for aliases

2 messages from 2017-02-10 to 2017-02-10. Participants: Tom Kunze, Junio C Hamano.
Thread: https://gitlist.dev/t/45096

## Tom Kunze, 2017-02-10 00:17

Subject: [PATCH] help: show help for aliases
Message-ID: <137f35a4-ec2e-b8aa-c6a5-b17688eca61a@tomabrafix.de>
URL: https://gitlist.dev/e/137f35a4-ec2e-b8aa-c6a5-b17688eca61a%40tomabrafix.de

```
If an alias is a single git command show the man page of the
aliased git command with --help.

Signed-off-by: Tom Kunze <mail@tom-kunze.de>
---
Hi,

I noticed that when I pass --help to an alias which is only a git
command it tells me a information about the alias. But it would be
nice if it instead opens the corresponding man page of the command.

There is a memory leak but in my opinion it can be ignored because
the process will be replaced anyway.

Regards,
Tom Kunze

PS: Please add me to cc as I am not subscribed.

 builtin/help.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/builtin/help.c b/builtin/help.c
index 49f7a07..655ed49 100644
--- a/builtin/help.c
+++ b/builtin/help.c
@@ -437,6 +437,10 @@ static const char *check_git_cmd(const char* cmd)

 	alias = alias_lookup(cmd);
 	if (alias) {
+		if (alias[0] != '!') {
+			strtok(alias, " \t\n");
+			return alias;
+		}
 		printf_ln(_("`git %s' is aliased to `%s'"), cmd, alias);
 		free(alias);
 		exit(0);
-- 
2.1.4

```

## Junio C Hamano, 2017-02-10 01:46

Subject: Re: [PATCH] help: show help for aliases
Message-ID: <xmqq7f4yn7fz.fsf@gitster.mtv.corp.google.com>
URL: https://gitlist.dev/e/xmqq7f4yn7fz.fsf%40gitster.mtv.corp.google.com
In-Reply-To: <137f35a4-ec2e-b8aa-c6a5-b17688eca61a@tomabrafix.de>

```
Tom Kunze <mail@tom-kunze.de> writes:

> If an alias is a single git command show the man page of the
> aliased git command with --help.
>
> Signed-off-by: Tom Kunze <mail@tom-kunze.de>
> ...
> diff --git a/builtin/help.c b/builtin/help.c
> index 49f7a07..655ed49 100644
> --- a/builtin/help.c
> +++ b/builtin/help.c
> @@ -437,6 +437,10 @@ static const char *check_git_cmd(const char* cmd)
>
>  	alias = alias_lookup(cmd);
>  	if (alias) {
> +		if (alias[0] != '!') {
> +			strtok(alias, " \t\n");
> +			return alias;
> +		}

While I understand where you come from, I am moderately negative,
especially with that strtok() to ignore options.

For a truly simple alias, e.g.

    $ git co --help
    `git co' is aliased to `checkout'

I do not think I would mind the updated behaviour given by this
patch that much.

But most of the time, when I do "help" on an alias, I am primarily
interested in what default customization I am using over the base
command, i.e.

    $ git lgf --help
    `git lgf' is aliased to `log --oneline --boundary --first-parent'

is my way to remind me that I am using these three options to "git
log" in the alias I very often use (and forgot what they were).

Jumping directly to the "git log" manual page is the last thing I
want "help" to do.

```
