Re: [PATCH] show help message also for aliased commands
On Thu, Feb 18, 2010 at 02:29:22AM +0100, Patrick Sudowe wrote:
Show 8 quoted lines
> 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).
Show 16 quoted lines
> @@ -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