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

[PATCH v3 0/4] List all guides in git(1)

From
Philippe Blain via GitGitGadget <gitgitgadget@gmail.com>
Date
Aug 5, 2020, 01:19 UTC
Message-ID
<pull.691.v3.git.1596590347.gitgitgadget@gmail.com>
In-Reply-To
<pull.691.v2.git.1596500459.gitgitgadget@gmail.com>
Changes since v2:
 * Split the third commit following Junio's suggestion

Question for Junio: Since the new commit 3/4 comes entirely from your suggestion, I've attributed authorship to you, but I've added my own sign-off because Gitgitgadget requires sign-off on each commit. Please let me know if I should have proceeded differently.

v2:
 * Incorporated Junio's suggestion to reduce duplication.
v1: This series adds a list of the guides to git(1).

The first commit adds the misssing guides 'gitcredentials' and 'gitremote-helpers' to command-list.txt. The only missing guide after this change is 'gitweb.conf', but I think this one is obscure anough, and already linked to in 'gitweb.txt', that it does not matter much.

The second commit drops the usage of 'common' and 'useful' for guides. This was suggested as one of two ways forward by Duy in [1] but was not commented on. I'm CC'ing the people that were CC'ed on that message.

The third commit tweaks 'Documentation/cmd-list.perl' so that it also generates a list of the guides, which gets included in 'git.txt'. I chose to put this list just after the end of the list of commands.

[1] https://lore.kernel.org/git/CACsJy8ADj-bTMYDHxRNLOMppOEdPbVwL49u3XCfNBCmoLLZo+A@mail.gmail.com/

Junio C Hamano (1):
  Documentation: don't hardcode command categories twice
Philippe Blain (3):
  command-list.txt: add missing 'gitcredentials' and 'gitremote-helpers'
  help: drop usage of 'common' and 'useful' for guides
  git.txt: add list of guides
 Documentation/Makefile           |  4 +++-
 Documentation/cmd-list.perl      | 27 ++++++++++++++-------------
 Documentation/git-help.txt       |  6 +++---
 Documentation/git.txt            |  7 +++++++
 Documentation/gitcredentials.txt |  2 +-
 builtin/help.c                   |  2 +-
 command-list.txt                 |  2 ++
 help.c                           |  4 ++--
 help.h                           |  2 +-
 9 files changed, 34 insertions(+), 22 deletions(-)
base-commit: e8ab941b671da6890181aea5b5755d1d9eea24ec
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-691%2Fphil-blain%2Flist-guides-in-git.1-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-691/phil-blain/list-guides-in-git.1-v3
Pull-Request: https://github.com/gitgitgadget/git/pull/691
Range-diff vs v2:
 1:  2bd473e0aa = 1:  2bd473e0aa command-list.txt: add missing 'gitcredentials' and 'gitremote-helpers'
 2:  f49cf08f4f = 2:  f49cf08f4f help: drop usage of 'common' and 'useful' for guides
 -:  ---------- > 3:  552444a842 Documentation: don't hardcode command categories twice
 3:  4394bb357b ! 4:  840371fb4b git.txt: add list of guides
     @@ Commit message
          `Documentation/cmd-list.perl` script to generate a file `cmds-guide.txt`
          which gets included in git.txt.
      
     -    Instead of hard-coding the list of command categories in both
     -    `Documentation/Makefile` and `Documentation/cmd-list.perl`, make the
     -    Makefile the authoritative source and tweak `cmd-list.perl` so that it
     -    receives the list of command categories as argument.
     -
          Also, do not hard-code the manual section '1'. Instead, use a regex so
          that the manual section is discovered from the first line of each
          `git*.txt` file.
      
     -    This addition was hinted at in 1b81d8cb19 (help: use command-list.txt for
     -    the source of guides, 2018-05-20).
     +    This addition was hinted at in 1b81d8cb19 (help: use command-list.txt
     +    for the source of guides, 2018-05-20).
      
          Helped-by: Junio C Hamano <gitster@pobox.com>
          Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
     @@ Documentation/Makefile: cmds_txt = cmds-ancillaryinterrogators.txt \
       	cmds-purehelpers.txt \
       	cmds-foreignscminterface.txt
       
     -@@ Documentation/Makefile: $(cmds_txt): cmd-list.made
     - 
     - cmd-list.made: cmd-list.perl ../command-list.txt $(MAN1_TXT)
     - 	$(QUIET_GEN)$(RM) $@ && \
     --	$(PERL_PATH) ./cmd-list.perl ../command-list.txt $(QUIET_STDERR) && \
     -+	$(PERL_PATH) ./cmd-list.perl ../command-list.txt $(cmds_txt) $(QUIET_STDERR) && \
     - 	date >$@
     - 
     - mergetools_txt = mergetools-diff.txt mergetools-merge.txt
      
       ## Documentation/cmd-list.perl ##
      @@ Documentation/cmd-list.perl: sub format_one {
     @@ Documentation/cmd-list.perl: sub format_one {
       		if ($attr =~ / deprecated /) {
       			print $out "(deprecated) ";
       		}
     -@@ Documentation/cmd-list.perl: sub format_one {
     - 	}
     - }
     - 
     --while (<>) {
     -+my ($input, @categories) = @ARGV;
     -+
     -+open IN, "<$input";
     -+while (<IN>) {
     - 	last if /^### command list/;
     - }
     - 
     - my %cmds = ();
     --for (sort <>) {
     -+for (sort <IN>) {
     - 	next if /^#/;
     - 
     - 	chomp;
     -@@ Documentation/cmd-list.perl: sub format_one {
     - 	$attr = '' unless defined $attr;
     - 	push @{$cmds{$cat}}, [$name, " $attr "];
     - }
     -+close IN;
     - 
     --for my $cat (qw(ancillaryinterrogators
     --		ancillarymanipulators
     --		mainporcelain
     --		plumbinginterrogators
     --		plumbingmanipulators
     --		synchingrepositories
     --		foreignscminterface
     --		purehelpers
     --		synchelpers)) {
     --	my $out = "cmds-$cat.txt";
     -+for my $out (@categories) {
     -+	my ($cat) = $out =~ /^cmds-(.*)\.txt$/;
     - 	open O, '>', "$out+" or die "Cannot open output file $out+";
     - 	for (@{$cmds{$cat}}) {
     - 		format_one(\*O, $_);
      
       ## Documentation/git.txt ##
      @@ Documentation/git.txt: users typically do not use them directly.
-- 
gitgitgadget
Previous: Philippe BlainNext: Philippe Blain via GitGitGadget
Message 14 of 18 in “[RFC] List all guides in git(1)”
  1. 0/3 [RFC] List all guides in git(1)Philippe Blain via GitGitGadget, Aug 2, 2020
  2. 1/3 command-list.txt: add missing 'gitcredentials' and 'gitremote-helpers'Philippe Blain via GitGitGadget, Aug 2, 2020
  3. 3/3 git.txt: add list of guidesPhilippe Blain via GitGitGadget, Aug 2, 2020
  4. Junio C HamanoAug 2, 2020
  5. Junio C HamanoAug 2, 2020
  6. Philippe BlainAug 3, 2020
  7. 2/3 help: drop usage of 'common' and 'useful' for guidesPhilippe Blain via GitGitGadget, Aug 2, 2020
  8. 0/3 List all guides in git(1)Philippe Blain via GitGitGadget, Aug 4, 2020
  9. 1/3 command-list.txt: add missing 'gitcredentials' and 'gitremote-helpers'Philippe Blain via GitGitGadget, Aug 4, 2020
  10. 2/3 help: drop usage of 'common' and 'useful' for guidesPhilippe Blain via GitGitGadget, Aug 4, 2020
  11. 3/3 git.txt: add list of guidesPhilippe Blain via GitGitGadget, Aug 4, 2020
  12. Junio C HamanoAug 4, 2020
  13. Philippe BlainAug 4, 2020
  14. 0/4 List all guides in git(1)Philippe Blain via GitGitGadget, Aug 5, 2020
  15. 1/4 command-list.txt: add missing 'gitcredentials' and 'gitremote-helpers'Philippe Blain via GitGitGadget, Aug 5, 2020
  16. 2/4 help: drop usage of 'common' and 'useful' for guidesPhilippe Blain via GitGitGadget, Aug 5, 2020
  17. 4/4 git.txt: add list of guidesPhilippe Blain via GitGitGadget, Aug 5, 2020
  18. 3/4 Documentation: don't hardcode command categories twiceJunio C Hamano via GitGitGadget, Aug 5, 2020

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.