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

Re: [PATCH 3/8] Docs: send-email: Man page option ordering

From
Jakub Narebski <jnareb@gmail.com>
Date
Sep 29, 2008, 00:10 UTC
Message-ID
<200809290210.33880.jnareb@gmail.com>
In-Reply-To
<FB3A852B-728F-4183-A5AF-BA8F8D995AD7@mit.edu>
On Sun, 28 Sep 2008 21:04, Michael Witten wrote:
Show 12 quoted lines
> On 28 Sep 2008, at 3:08 AM, Jakub Narebski wrote:
>> Michael Witten wrote:
>>
>>> Now the man page lists the options in alphabetical
>>> order (in terms of the 'main' part of an option's
>>> name).
>>
>> I know it is a matter of taste, but I prefer having options
>> on man page in functional order, grouped by function, perhaps
>> with subsections to group them (c.f. git-rev-list man page).
> 
> See: http://marc.info/?l=git&m=122246885210923&w=2
You meant the following comment by  Jeff King?

peff> 4/6: I am not sure about making the order of options the same, peff> the two formats serve different purposes. I think peff> "git send-email --foo" should present the options based on peff> commonality of use. You clearly got the usage wrong, so peff> I think it is helping you to figure out quickly what you peff> probably meant.

This agrees with Gnits (GNU Coding Standard expanded) about --help http://www.gnu.org/software/womb/gnits/Help-Output.html#Help-Output

# When a program has many options, try regrouping options logically,
  instead of listing them all alphabetically (say), as the mere
  regrouping is a succint way to convey much information. Present each
  group of options in its own subtable, suitably introduced by some few
  words. Separate groups by white lines for making the overall structure
  more easy to grasp by the reader. Here is an excerpt from a relatively
  big `--help' output:
       Main operation mode:
          -t, --list              list the contents of an archive
          -x, --extract, --get    extract files from an archive
          -c, --create            create a new archive
          -d, --diff, --compare   find differences between archive and file system
          -r, --append            append files to the end of an archive
          -u, --update            only append files newer than copy in archive
          -A, --catenate          append tar files to an archive
              --concatenate       same as -A
              --delete            delete from the archive (not on mag tapes!)
          
        Device blocking:
          -b, --blocking-factor=BLOCKS   BLOCKS x 512 bytes per record
              --record-size=SIZE         SIZE bytes per record, multiple of 512
          -i, --ignore-zeros             ignore zeroed blocks in archive (means EOF)
          -B, --read-full-records        reblock as we read (for 4.2BSD pipes)
peff>    The manpage, on the other hand, is a comprehensive reference
peff>    and so should probably be alphabetized for easy reading.
 
I haven't found definitive guide or definitive suggestion whether
options in man page should be alphabetized or put in some functional
order. GNU Coding Standards doesn't say anything; at least I haven't
found anything on this topic.

First, git lacks structured texinfo documentation, so manpages serves _both_ as reference, and _as learning tool_. For learning you would want options grouped by function, perhaps sorted alphabetically in group. If you want to find some option, you can always use search and incremental search capabilities of manpages pager.

Second, large manpages with large number of options are usually divided into sections, see git-rev-list(1) manpage, or rpmbuild(8) manpage. So there is precedent for that. And I think it is good precedent.

-- 
Jakub Narebski
Poland
Previous: Michael WittenNext: Jeff King
Message 21 of 45 in “Docs: send-email's usage text and man page mention same options”
  1. 1/8 Docs: send-email's usage text and man page mention same optionsMichael Witten, Sep 28, 2008
  2. 2/8 Docs: send-email usage text much sexierMichael Witten, Sep 28, 2008
  3. 3/8 Docs: send-email: Man page option orderingMichael Witten, Sep 28, 2008
  4. 4/8 send-email: change --no-validate to boolean --[no-]validateMichael Witten, Sep 28, 2008
  5. 5/8 Docs: send-email: --chain_reply_to -> --[no-]chain-reply-toMichael Witten, Sep 28, 2008
  6. 6/8 Docs: Arranged config options in man pageMichael Witten, Sep 28, 2008
  7. 7/8 Docs: send-email: Added all config variables to man endMichael Witten, Sep 28, 2008
  8. 8/8 Docs: config: send-email config options includedMichael Witten, Sep 28, 2008
  9. Jeff KingSep 28, 2008
  10. Michael WittenSep 28, 2008
  11. Jeff KingSep 28, 2008
  12. Jeff KingSep 28, 2008
  13. Michael WittenSep 28, 2008
  14. Jeff KingSep 28, 2008
  15. Jeff KingSep 28, 2008
  16. Michael WittenSep 28, 2008
  17. bash completion: Add --[no-]-validate to "git send-email"Teemu Likonen, Sep 28, 2008
  18. Teemu LikonenSep 28, 2008
  19. Jakub NarebskiSep 28, 2008
  20. Michael WittenSep 28, 2008
  21. Jakub NarebskiSep 29, 2008
  22. Jeff KingSep 29, 2008
  23. 6/9 Docs: send-email: Remove unnecessary config variable descriptionMichael Witten, Sep 29, 2008
  24. 7/9 send-email: Completely replace --signed-off-cc with --signed-off-by-ccMichael Witten, Sep 29, 2008
  25. 8/9 Docs: send-email: Create logical groupings for --help textMichael Witten, Sep 29, 2008
  26. 9/9 Docs: send-email: Create logical groupings for man textMichael Witten, Sep 29, 2008
  27. Jeff KingSep 29, 2008
  28. Miklos VajnaSep 28, 2008
  29. Michael WittenSep 28, 2008
  30. Jeff KingSep 29, 2008
  31. 8/9 Docs: send-email: Create logical groupings for man textMichael Witten, Sep 29, 2008
  32. 9/9 send-email: signedoffcc -> signedoffbycc, but handle bothMichael Witten, Sep 29, 2008
  33. Jeff KingSep 29, 2008
  34. 1/9 Docs: send-email's usage text and man page mention same optionsMichael Witten, Sep 30, 2008
  35. 2/9 Docs: send-email usage text much sexierMichael Witten, Sep 30, 2008
  36. 3/9 Docs: send-email: Man page option orderingMichael Witten, Sep 30, 2008
  37. 4/9 send-email: change --no-validate to boolean --[no-]validateMichael Witten, Sep 30, 2008
  38. 5/9 Docs: send-email: --chain_reply_to -> --[no-]chain-reply-toMichael Witten, Sep 30, 2008
  39. 6/9 Docs: send-email: Remove unnecessary config variable descriptionMichael Witten, Sep 30, 2008
  40. 7/9 Docs: send-email: Create logical groupings for --help textMichael Witten, Sep 30, 2008
  41. 8/9 Docs: send-email: Create logical groupings for man textMichael Witten, Sep 30, 2008
  42. 9/9 send-email: signedoffcc -> signedoffbycc, but handle bothMichael Witten, Sep 30, 2008
  43. Jeff KingOct 1, 2008
  44. Michael WittenOct 1, 2008
  45. Shawn O. PearceOct 1, 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.