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

Re: [PATCH v3] rev-parse --parseopt: option argument name hints

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 21, 2014, 17:04 UTC
Message-ID
<xmqqvbv7v5xh.fsf@gitster.dls.corp.google.com>
In-Reply-To
<532B7774.30308@gmail.com>
Ilya Bobyr <ilya.bobyr@gmail.com> writes:
Show 15 quoted lines
>>> +	`<arg_hing>`, if specified, is used as a name of the argument in the
>>> +	help output, for options that take arguments. `<arg_hint>` is
>>> +	terminated by the first whitespace. When output the name is shown in
>>> +	angle braces.  Underscore symbols are replaced with spaces.
>> The last part is troubling (and sounds not very sane).  Do we do
>> such a munging anywhere else, or is it just here?  If the latter I'd
>> prefer not to see such a hack.
>
> The following commands have spaces in argument names in the "-h"
> output for one or two arguments:
>   * clone
>   * commit
>   * merge
>
> A number of commands use dashes to separate words in arguments names.

That was not what I asked. I was asking if there is a precedent to use "you cannot have underscores in hint; they will be turned into spaces" quoting convention. I do not think of any (we either do a backslash-quote, c-quote inside dq-pair, or %20, depending on the context).

Personally, because these "hints" are not even hints (they are more like placeholders for value that makes it easier to refer to in the description of an option [*1*]), I wouldn't shed tears if scripted Porcelains cannot use a space in the argh. In fact, it probably makes the result harder to read and format more funnily if you had a space in the argh string, be it in a subcommand implemented in C or in a scripted Porcelain.

"An optional argh is terminated by a whitespace" is perfectly fine, and by doing so we do not have to worry about having to introduce a new quoting convention like you did, which is a big plus.

[Footnote]
*1* Perhaps like this:
	--gpg-sign[=<key-id>]
        	Sign (with the key specified with <key-id>)
Previous: Ilya BobyrNext: Ilya Bobyr
Message 16 of 23 in “rev-parse --parseopt: option argument name hints”
  1. rev-parse --parseopt: option argument name hintsIlya Bobyr, Mar 3, 2014
  2. Junio C HamanoMar 4, 2014
  3. Ilya BobyrMar 10, 2014
  4. rev-parse --parseopt: option argument name hintsIlya Bobyr, Mar 10, 2014
  5. Junio C HamanoMar 10, 2014
  6. Junio C HamanoMar 11, 2014
  7. Ilya BobyrMar 12, 2014
  8. Junio C HamanoMar 12, 2014
  9. Ilya BobyrMar 19, 2014
  10. Junio C HamanoMar 19, 2014
  11. Ilya BobyrMar 20, 2014
  12. rev-parse --parseopt: option argument name hintsIlya Bobyr, Mar 20, 2014
  13. Junio C HamanoMar 20, 2014
  14. Ilya BobyrMar 20, 2014
  15. Ilya BobyrMar 21, 2014
  16. Junio C HamanoMar 21, 2014
  17. rev-parse --parseopt: option argument name hintsIlya Bobyr, Mar 22, 2014
  18. 0/3 Parse-options: spell multi-word placeholders with dashesJunio C Hamano, Mar 24, 2014
  19. 1/3 parse-options: multi-word argh should use dash to separate wordsJunio C Hamano, Mar 24, 2014
  20. 2/3 update-index: teach --cacheinfo a new syntax "mode,sha1,path"Junio C Hamano, Mar 24, 2014
  21. 3/3 parse-options: make sure argh string does not have SP or _Junio C Hamano, Mar 24, 2014
  22. Eric SunshineMar 20, 2014
  23. Ilya BobyrMar 21, 2014

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.