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

Re: [PATCH] Documentation/git-stash.txt: Adjust SYNOPSIS command syntaxes

From
Jakub Narebski <jnareb@gmail.com>
Date
Feb 1, 2008, 13:35 UTC
Message-ID
<m33asc94xn.fsf@localhost.localdomain>
In-Reply-To
<1w7w966m.fsf@blue.sea.net>
Jari Aalto <jari.aalto@cante.net> writes:
Show 12 quoted lines
> * Fri 2008-02-01 Jakub Narebski <jnareb@gmail.com>
> * Message-Id: m37iho9b70.fsf@localhost.localdomain
> >
> >
> > 'git-stash' (list | show [<stash>] | apply [<stash>] | clear)
> > 'git-stash' [save [<message>...]]
> >
> > Angle brackets if I understand correctly are meant to denote part
> > which you have to enter, the user supplied info (the reast ou have to
> > enter literally).
> 
> Nowhere I have seen "(" parenheses to mean "required". 

The "(" parentheses does not mean "required". They do mean "group", just like for regular expressions. So "A (B | C)" means "A B" or "A C".

Show 8 quoted lines
> The angle brackets are commonly used to tell that the part is to be
> required:
> 
>     command <option> <file ...>
> 
> Reads:
> 
>     command -l file.txt

No, the "<" angle brackets are meant to denote: substitute your own (user) input, and not use as literal value. So "command <option>" mean select one of options ant put it in place of "<option>"

> Whereas this has no known meaning:
> 
>     command (option) <file ...>

It doesn't have meaning if there is no alternative in "(" parentheses. So it makes sense to use:

      command (subcmd1 | subcmd2) <file ...>
but not
      command (option) <file ...>
> But this does:
> 
>     command [option] <file ...>
The "[" brackets mean both "optional" and "group" (to reduce number of
parentheses-like operators).
 
> That's why I suggested to use:
> 
>     git stash <list | show [<stash>] | apply [<stash>] | clear>
>     git stash [save [<message>...]]

I hope that I have explained above why I think it is wrong. IMHO the "<" angle brackets mean: substitute your own input, and are not meant for grouping (limiting where alternates start and where end).

Show 10 quoted lines
> NOTE:
> 
> There exists curly braces notation that is sometimes used for
> "required" part, but that not very common elsewhere other than
> printed books from commercial vendors.
> 
>     command {one|two|three}
> 
> I would hesitate to select parentheses notation, which is relatively unknown
> to mean "required" in the context of command syntax SYNOPSIS.
Lack of "[" brackets means required.

By the way, is the format used by SYNOPSIS in manpages somewhere specified, for example in some RFC, like BNF notation and BNF-like notation used by RFCs is?

-- 
Jakub Narebski
Poland
ShadeHawk on #git
Previous: Jari AaltoNext: Jari Aalto
Message 4 of 19 in “Documentation/git-stash.txt: Adjust SYNOPSIS command syntaxes”
  1. Documentation/git-stash.txt: Adjust SYNOPSIS command syntaxesJari Aalto, Feb 1, 2008
  2. Jakub NarebskiFeb 1, 2008
  3. Jari AaltoFeb 1, 2008
  4. Jakub NarebskiFeb 1, 2008
  5. Jari AaltoFeb 1, 2008
  6. Junio C HamanoFeb 1, 2008
  7. Jari AaltoFeb 2, 2008
  8. Jari AaltoFeb 2, 2008
  9. Jakub NarebskiFeb 2, 2008
  10. Jari AaltoFeb 2, 2008
  11. Jakub NarebskiFeb 2, 2008
  12. Jari AaltoFeb 2, 2008
  13. Jakub NarebskiFeb 2, 2008
  14. Jari AaltoFeb 2, 2008
  15. Jakub NarebskiFeb 2, 2008
  16. Documentation/git-stash.txt: Adjust SYNOPSIS command syntaxJari Aalto, Feb 2, 2008
  17. Junio C HamanoFeb 2, 2008
  18. Jakub NarebskiFeb 2, 2008
  19. Documentation/git-stash.txt: Adjust SYNOPSIS command syntax (2)Jari Aalto, Feb 2, 2008

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.