* [PATCH] show help message also for aliased commands
@ 2010-02-18 1:29 Patrick Sudowe
2010-02-18 2:13 ` Junio C Hamano
2010-02-18 2:18 ` Jeff King
0 siblings, 2 replies; 3+ messages in thread
From: Patrick Sudowe @ 2010-02-18 1:29 UTC (permalink / raw)
To: git; +Cc: Patrick Sudowe
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.
---
builtin-help.c | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/builtin-help.c b/builtin-help.c
index 3182a2b..4d8906d 100644
--- a/builtin-help.c
+++ b/builtin-help.c
@@ -416,6 +416,7 @@ int cmd_help(int argc, const char **argv, const char *prefix)
{
int nongit;
const char *alias;
+ const char *cmd;
enum help_format parsed_help_format;
load_command_list("git-", &main_cmds, &other_cmds);
@@ -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);
break;
case HELP_FORMAT_INFO:
- show_info_page(argv[0]);
+ show_info_page(cmd);
break;
case HELP_FORMAT_WEB:
- show_html_page(argv[0]);
+ show_html_page(cmd);
break;
}
--
1.7.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] show help message also for aliased commands
2010-02-18 1:29 [PATCH] show help message also for aliased commands Patrick Sudowe
@ 2010-02-18 2:13 ` Junio C Hamano
2010-02-18 2:18 ` Jeff King
1 sibling, 0 replies; 3+ messages in thread
From: Junio C Hamano @ 2010-02-18 2:13 UTC (permalink / raw)
To: Patrick Sudowe; +Cc: git
Patrick Sudowe <patrick.sudowe@rwth-aachen.de> writes:
> 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.
I somehow think this is a horrible change.
I have "[alias] lg = log --oneline --no-merges" and I do appreciate that
it tells the expansion, because I also have other similar ones like
"[alias] lgm = log --notes-ref=amlog", "lgf", etc.
I don't want the expansion to be erased by manual page of "log";
typically the output from man is piped to less(1).
Besides, I may not know what "log" does, but at least I studied what
options it takes when coming up with the hardcoded leading options
already. I don't want to see the manual page of "log" by default when I
ask git about "lg". If git tells me "lg" expands to "log --oneline", and
I do not remember what other options "log" takes, I'll ask git myself
about "log", not "lg".
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] show help message also for aliased commands
2010-02-18 1:29 [PATCH] show help message also for aliased commands Patrick Sudowe
2010-02-18 2:13 ` Junio C Hamano
@ 2010-02-18 2:18 ` Jeff King
1 sibling, 0 replies; 3+ messages in thread
From: Jeff King @ 2010-02-18 2:18 UTC (permalink / raw)
To: Patrick Sudowe; +Cc: git
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
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-02-18 2:19 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-18 1:29 [PATCH] show help message also for aliased commands Patrick Sudowe
2010-02-18 2:13 ` Junio C Hamano
2010-02-18 2:18 ` Jeff King
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).