Re: [PATCH] show help message also for aliased commands

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

 



On Thu, Feb 18, 2010 at 02:29:22AM +0100, Patrick Sudowe wrote:

> git help 'alias' currently only shows the actual git command
> 'alias' refers to. This patch changes the behavior so that
> the help for the actual git command is shown. The user usually
> knows the aliases defined, and sometimes its just more convenient
> to type something like git help co than git help checkout
> to find out about some rarely used option.
> The original message is still there, so users do not face
> unexpected or surprising behavior.

Won't the original message get eaten when 'man' starts a pager (I know
there are other, non-paged ways of showing the help, but man is the
default).

> @@ -446,19 +447,22 @@ int cmd_help(int argc, const char **argv, const char *prefix)
>  	alias = alias_lookup(argv[0]);
>  	if (alias && !is_git_command(argv[0])) {
>  		printf("`git %s' is aliased to `%s'\n", argv[0], alias);
> -		return 0;
> +		cmd = alias;
> +	} else {
> +		cmd = argv[0];
>  	}
>  
> +
>  	switch (help_format) {
>  	case HELP_FORMAT_NONE:
>  	case HELP_FORMAT_MAN:
> -		show_man_page(argv[0]);
> +		show_man_page(cmd);

This breaks horribly for all but the simplest of aliases. This works:

  $ git config alias.co checkout
  $ git help co

But this would need to trim it down to just "log":

  $ git config alias.lp 'log -p'
  $ git help lp
  `git lp' is aliased to `log -p'
  No manual entry for gitlog -p

And this is just impossible:

  $ git config alias.jive '!sh -c "git log | jive"'
  $ git help jive
  `git jive' is aliased to `!sh -c "git log | jive"'
  No manual entry for git!sh -c "git log | jive"

-Peff
--
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]