git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] help: make option --help open man pages only for Git commands

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 12, 2016, 21:34 UTC
Message-ID
<xmqqk2flvfhb.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<20160812201011.20233-1-ralf.thielow@gmail.com>
Ralf Thielow <ralf.thielow@gmail.com> writes:
Show 8 quoted lines
> If option --help is passed to a Git command, we try to open
> the man page of that command. However, we do it even for commands
> we don't know.  Make sure the command is known to Git before try
> to open the man page.  If we don't know the command, give the
> usual advice.
>
> Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
> ---

I love it when I say "This shouldn't be too hard; somebody may want to do a patch", with just a vague implemention idea in my head, and a patch magically appears with even a better design than I had in mind when I said it [*1*] ;-)

Show 25 quoted lines
>  builtin/help.c  | 21 ++++++++++++++-------
>  t/t0012-help.sh | 15 +++++++++++++++
>  2 files changed, 29 insertions(+), 7 deletions(-)
>  create mode 100755 t/t0012-help.sh
>
> diff --git a/builtin/help.c b/builtin/help.c
> index 8848013..55d45de 100644
> --- a/builtin/help.c
> +++ b/builtin/help.c
> @@ -433,10 +433,22 @@ static void list_common_guides_help(void)
>  	putchar('\n');
>  }
>  
> +static void check_git_cmd(const char* cmd) {
> +	char *alias = alias_lookup(cmd);
> +
> +	if (!is_git_command(cmd)) {
> +		if (alias) {
> +			printf_ln(_("`git %s' is aliased to `%s'"), cmd, alias);
> +			free(alias);
> +			exit(0);
> +		} else
> +			help_unknown_cmd(cmd);
> +	}
> +}
Looks quite reasonable to reuse help_unknown_cmd() there.
Thanks, will queue.
[Footnote]
*1* The vague thing I had in my mind was to use is_git_command() and
    alias_lookup() to prevent the "git foo --help" -> "git help foo" 
    magic from triggering for 'foo' that is not known.  Your solution
    is MUCH cleaner and more straight-forward.
Previous: Ralf ThielowNext: Junio C Hamano
Message 8 of 46 in “`git stash --help` tries to pull up nonexistent file gitstack.html”
  1. Joseph MusserAug 12, 2016
  2. Junio C HamanoAug 12, 2016
  3. Lars SchneiderAug 12, 2016
  4. Joseph MusserAug 12, 2016
  5. Junio C HamanoAug 12, 2016
  6. Jacob KellerAug 12, 2016
  7. help: make option --help open man pages only for Git commandsRalf Thielow, Aug 12, 2016
  8. Junio C HamanoAug 12, 2016
  9. Junio C HamanoAug 12, 2016
  10. Philip OakleyAug 13, 2016
  11. Junio C HamanoAug 13, 2016
  12. help: make option --help open man pages only for Git commandsRalf Thielow, Aug 15, 2016
  13. Philip OakleyAug 15, 2016
  14. Junio C HamanoAug 15, 2016
  15. Philip OakleyAug 15, 2016
  16. Junio C HamanoAug 15, 2016
  17. John KeepingAug 16, 2016
  18. help: make option --help open man pages only for Git commandsRalf Thielow, Aug 16, 2016
  19. John KeepingAug 16, 2016
  20. Ralf ThielowAug 16, 2016
  21. Junio C HamanoAug 16, 2016
  22. Ralf ThielowAug 16, 2016
  23. Junio C HamanoAug 16, 2016
  24. 0/2 help: make option --help open man pages only for Git commandsRalf Thielow, Aug 18, 2016
  25. 1/2 help: introduce option --command-onlyRalf Thielow, Aug 18, 2016
  26. Philip OakleyAug 18, 2016
  27. 2/2 help: make option --help open man pages only for Git commandsRalf Thielow, Aug 18, 2016
  28. Junio C HamanoAug 18, 2016
  29. Ralf ThielowAug 23, 2016
  30. Remi Galan AlfonsoAug 19, 2016
  31. Ralf ThielowAug 23, 2016
  32. Johannes SchindelinAug 19, 2016
  33. Junio C HamanoAug 19, 2016
  34. Ralf ThielowAug 23, 2016
  35. Johannes SchindelinAug 24, 2016
  36. 0/3 help: make option --help open man pages only for Git commandsRalf Thielow, Aug 26, 2016
  37. 1/3 Revert "display HTML in default browser using Windows' shell API"Ralf Thielow, Aug 26, 2016
  38. 3/3 help: make option --help open man pages only for Git commandsRalf Thielow, Aug 26, 2016
  39. 2/3 help: introduce option --exclude-guidesRalf Thielow, Aug 26, 2016
  40. Junio C HamanoAug 26, 2016
  41. Junio C HamanoAug 26, 2016
  42. Ralf ThielowAug 26, 2016
  43. Junio C HamanoAug 26, 2016
  44. Ralf ThielowAug 26, 2016
  45. Junio C HamanoAug 26, 2016
  46. Ralf ThielowAug 26, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.