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

Re: [PATCH] doc: fix grammar rules in commands'syntax

From
Jean-Noël Avila <jn.avila@free.fr>
Date
Oct 28, 2021, 09:31 UTC
Message-ID
<819ab0ed-8a99-2987-79c9-88cd1118b51b@free.fr>
In-Reply-To
<CAN0heSpRZy3+jyc09NEj4NJk4zN4X_RyVk33F5c6tyUE2qMGzQ@mail.gmail.com>
Le 27/10/2021 à 20:56, Martin Ågren a écrit :
Show 19 quoted lines
> On Tue, 26 Oct 2021 at 21:35, Jean-Noël Avila via GitGitGadget
> <gitgitgadget@gmail.com> wrote:
>>
>> --- a/Documentation/git-archimport.txt
>> +++ b/Documentation/git-archimport.txt
>> @@ -9,8 +9,8 @@ git-archimport - Import a GNU Arch repository into Git
>>  SYNOPSIS
>>  --------
>>  [verse]
>> -'git archimport' [-h] [-v] [-o] [-a] [-f] [-T] [-D depth] [-t tempdir]
>> -               <archive/branch>[:<git-branch>] ...
>> +'git archimport' [-h] [-v] [-o] [-a] [-f] [-T] [-D <depth>] [-t <tempdir>]
>> +              <archive>/<branch>[:<git-branch>]...
> 
> Your rewrite makes it seem like one would write, e.g., "myarch/master"
> with a literal slash, whereas my initial thought was that the original
> tried to express something like "(<archive> | <branch>)". But I have
> zero experience with "GNU Arch" and git-archimport, so I can't really
> tell whether your rewrite is for the better or not. :-)

The <archive>/<branch> grammar is the one available in the usage of the command.

> 
> In any case, this document goes on to write "<archive/branch>" several
> times. Supposedly, they would all want to be changed as well. There's
> also an instance of "Archive/branch identifier ..." to maybe look into.
Ack. All the changes in a single commit
Show 15 quoted lines
> 
>> --- a/Documentation/git-cvsimport.txt
>> +++ b/Documentation/git-cvsimport.txt
>> @@ -9,11 +9,11 @@ git-cvsimport - Salvage your data out of another SCM people love to hate
>>  SYNOPSIS
>>  --------
>>  [verse]
>> -'git cvsimport' [-o <branch-for-HEAD>] [-h] [-v] [-d <CVSROOT>]
>> +'git cvsimport' [-o <branch-for-HEAD>] [-h] [-v] [-d <cvsroot>]
> 
>> -<CVS_module>::
>> +<CVS-module>::
>>         The CVS module you want to import. Relative to <CVSROOT>.
> 
> Here's another "<CVSROOT>".
Is this an environment variable or a placeholder?
Show 18 quoted lines
> 
>> --- a/Documentation/git-http-push.txt
>> +++ b/Documentation/git-http-push.txt
>> @@ -63,16 +63,15 @@ of such patterns separated by a colon ":" (this means that a ref name
> 
>> -Each pattern pair consists of the source side (before the colon)
>> -and the destination side (after the colon).  The ref to be
>> -pushed is determined by finding a match that matches the source
>> -side, and where it is pushed is determined by using the
>> -destination side.
>> +Each pattern pair '<src>:<dst>' consists of the source side (before
>> +the colon) and the destination side (after the colon).  The ref to be
>> +pushed is determined by finding a match that matches the source side,
>> +and where it is pushed is determined by using the destination side.
> 
> This looks like the insertion of "'<src>:<dst>' early on, where the rest
> of the changes are just follow-on line-wrapping.
> 

Strict line-wrapping doesn't work well with version control in free text. And it doesn't work well either with asciidoc, where some unlucky wrapping can generate spurious formatting.

Show 7 quoted lines
> I wonder if this patch could benefit from being broken into smaller
> pieces. Maybe a few preliminaries like "change <foo|bar|baz> to
> (foo|bar|baz)" and the like, then even if the final patch is "large", it
> will not be *as large*? But there are clearly sub-topics here, such as
> "change <some_arg> to <some-arg>" and "change arg to <arg>". Or maybe
> this doesn't make sense as an approach to cutting this patch into
> smaller pieces, but I thought I'd mention it.
The changes are muliplying. I will split them.
Show 19 quoted lines
> 
>> - - It is an error if <src> does not match exactly one of the
>> + - It is an error if '<src>' does not match exactly one of the
>>     local refs.
>>
>> - - If <dst> does not match any remote ref, either
>> + - If '<dst>' does not match any remote ref, either
> 
> I believe these match Junio's preference, so ok. But again, this looks
> like it could go in a separate patch from a lot of these other changes
> as a way of keeping to somewhat focused changes.
> 
>> -               (--[cached|deleted|others|ignored|stage|unmerged|killed|modified])*
>> -               (-[c|d|o|i|s|u|k|m])*
>> +               [--(cached|deleted|others|ignored|stage|unmerged|killed|modified)...]
>> +               [-(c|d|o|i|s|u|k|m)...]
> 
> Sort of cute how this saves on repeating the "--" by pulling it out.
> Anyway, nothing new in your patch. :-)

To me, the grammar should express at the token level (not like here), and anyway, this synopsis is not correct: even if these options are allowed to be repeated several times on the command line, this is useless and some of them have the same meaning (and this should be shown). This way of expressing the grammar induce the reader into thinking that this is some kind of inner grammar to the command.

Jean-Noël
Previous: Eric SunshineNext: Martin Ågren
Message 6 of 49 in “doc: fix grammar rules in commands'syntax”
  1. doc: fix grammar rules in commands'syntaxJean-Noël Avila via GitGitGadget, Oct 26, 2021
  2. Eric SunshineOct 26, 2021
  3. Jean-Noël AvilaOct 27, 2021
  4. Martin ÅgrenOct 27, 2021
  5. Eric SunshineOct 27, 2021
  6. Jean-Noël AvilaOct 28, 2021
  7. Martin ÅgrenOct 28, 2021
  8. 0/9 doc: fix grammar rules in commands' syntaxJean-Noël Avila via GitGitGadget, Oct 28, 2021
  9. 1/9 doc: fix git credential synopsisJean-Noël Avila via GitGitGadget, Oct 28, 2021
  10. 2/9 doc: split placeholders as individual tokensJean-Noël Avila via GitGitGadget, Oct 28, 2021
  11. Martin ÅgrenOct 28, 2021
  12. 3/9 doc: express grammar placeholders between angle bracketsJean-Noël Avila via GitGitGadget, Oct 28, 2021
  13. Eric SunshineOct 28, 2021
  14. Junio C HamanoOct 28, 2021
  15. 4/9 doc: use only hyphens as word separators in placeholdersJean-Noël Avila via GitGitGadget, Oct 28, 2021
  16. Martin ÅgrenOct 28, 2021
  17. Junio C HamanoOct 28, 2021
  18. Eli SchwartzOct 31, 2021
  19. Jean-Noël AVILAOct 31, 2021
  20. Junio C HamanoNov 1, 2021
  21. Jean-Noël AvilaNov 3, 2021
  22. Junio C HamanoNov 3, 2021
  23. Johannes SchindelinNov 4, 2021
  24. Junio C HamanoNov 4, 2021
  25. Eli SchwartzNov 7, 2021
  26. 5/9 doc: git-ls-files: express options as optional alternativesJean-Noël Avila via GitGitGadget, Oct 28, 2021
  27. 7/9 doc: uniformize <URL> placeholders' caseJean-Noël Avila via GitGitGadget, Oct 28, 2021
  28. Junio C HamanoOct 28, 2021
  29. 6/9 doc: use three dots for indicating repetition instead of starJean-Noël Avila via GitGitGadget, Oct 28, 2021
  30. 8/9 doc: git-http-push: describe the refs as pattern pairsJean-Noël Avila via GitGitGadget, Oct 28, 2021
  31. Junio C HamanoOct 28, 2021
  32. 9/9 doc: git-init: clarify file modes in octal.Jean-Noël Avila via GitGitGadget, Oct 28, 2021
  33. Junio C HamanoOct 28, 2021
  34. Junio C HamanoOct 28, 2021
  35. Junio C HamanoOct 28, 2021
  36. 00/10 doc: fix grammar rules in commands' syntaxJean-Noël Avila, Nov 6, 2021
  37. 01/10 doc: fix git credential synopsisJean-Noël Avila, Nov 6, 2021
  38. 02/10 doc: split placeholders as individual tokensJean-Noël Avila, Nov 6, 2021
  39. 03/10 doc: express grammar placeholders between angle bracketsJean-Noël Avila, Nov 6, 2021
  40. 04/10 doc: use only hyphens as word separators in placeholdersJean-Noël Avila, Nov 6, 2021
  41. 05/10 doc: git-ls-files: express options as optional alternativesJean-Noël Avila, Nov 6, 2021
  42. 06/10 doc: use three dots for indicating repetition instead of starJean-Noël Avila, Nov 6, 2021
  43. 07/10 doc: uniformize <URL> placeholders' caseJean-Noël Avila, Nov 6, 2021
  44. 08/10 doc: git-http-push: describe the refs as pattern pairsJean-Noël Avila, Nov 6, 2021
  45. 09/10 doc: git-init: clarify file modes in octal.Jean-Noël Avila, Nov 6, 2021
  46. Johannes AltmanningerNov 7, 2021
  47. 10/10 init doc: --shared=0xxx does not give umask but perm bitsJean-Noël Avila, Nov 6, 2021
  48. Johannes AltmanningerNov 7, 2021
  49. Junio C HamanoNov 9, 2021

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.