git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Blain via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Lawrence Siebert <lawrencesiebert@gmail.com>,
	Denton Liu <liu.denton@gmail.com>,
	Junio C Hamano <gitster@pobox.com>, Taylor Blau <me@ttaylorr.com>,
	Philip Oakley <philipoakley@iee.email>,
	Philippe Blain <levraiphilippeblain@gmail.com>
Subject: [PATCH v3 0/6] doc: include git rev-list description in git log doc
Date: Thu, 09 Jul 2020 02:16:42 +0000	[thread overview]
Message-ID: <pull.590.v3.git.1594261008.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.590.v2.git.1593747509.gitgitgadget@gmail.com>

Changes since v2:

 * applied Junio's suggestions 
 * added a preparatory commit tweaking the wording of one sentence in the 
   git rev-list description
 * added a new commit adding a sentence in revisions.txt to mention
   explicitly what it means to list several revisions to form a range.

v2: This series moves the nice explanation in the 'Description' section of
the git rev-list man page to a separate file and includes this file in the 
git log man page.

This goal is to make readers more aware that they can write e.g.

git log branch1 branch2 branch3 branch4 --not master

to see commits on each of branch1-4, that are not on master, since this is
not immediately obvious (at least to me) in the git log man page. 

Note that I made several commits for ease of reviewing, I'll squash some if
this would be preferred.

Changes since v1: took a completely different approach following the
comments received from Junio and Taylor.

Philippe Blain (6):
  git-log.txt: add links to 'rev-list' and 'diff' docs
  revisions.txt: describe 'rev1 rev2 ...' meaning for ranges
  git-rev-list.txt: fix Asciidoc syntax
  git-rev-list.txt: tweak wording in set operations
  git-rev-list.txt: move description to separate file
  git-log.txt: include rev-list-description.txt

 Documentation/git-log.txt              |  7 ++-
 Documentation/git-rev-list.txt         | 40 +----------------
 Documentation/rev-list-description.txt | 61 ++++++++++++++++++++++++++
 Documentation/revisions.txt            |  3 ++
 4 files changed, 71 insertions(+), 40 deletions(-)
 create mode 100644 Documentation/rev-list-description.txt


base-commit: a08a83db2bf27f015bec9a435f6d73e223c21c5e
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-590%2Fphil-blain%2Fdoc-log-multiple-ranges-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-590/phil-blain/doc-log-multiple-ranges-v3
Pull-Request: https://github.com/gitgitgadget/git/pull/590

Range-diff vs v2:

 1:  59c48282a0 ! 1:  59027b0f6a git-log.txt: add links to 'rev-list' and 'diff' docs
     @@ Documentation/git-log.txt: DESCRIPTION
      +The command takes options applicable to the linkgit:git-rev-list[1]
       command to control what is shown and how, and options applicable to
      -the `git diff-*` commands to control how the changes
     -+the linkgit:git-diff[1] family of commands to control how the changes
     ++the linkgit:git-diff[1] command to control how the changes
       each commit introduces are shown.
       
       
 -:  ---------- > 2:  3c573695a8 revisions.txt: describe 'rev1 rev2 ...' meaning for ranges
 4:  3b923780c1 ! 3:  b8ee4a743c rev-list-description.txt: fix Asciidoc syntax
     @@ Metadata
      Author: Philippe Blain <levraiphilippeblain@gmail.com>
      
       ## Commit message ##
     -    rev-list-description.txt: fix Asciidoc syntax
     +    git-rev-list.txt: fix Asciidoc syntax
      
          Using '{caret}' inside double quotes and immediately following with a
          single quoted word does not create the desired output: '<commit1>'
     @@ Commit message
      
          Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
      
     - ## Documentation/rev-list-description.txt ##
     -@@ Documentation/rev-list-description.txt: Thus, the following command:
     + ## Documentation/git-rev-list.txt ##
     +@@ Documentation/git-rev-list.txt: to further limit the result.
     + Thus, the following command:
       
     - ifdef::git-rev-list[]
       -----------------------------------------------------------------------
      -	$ git rev-list foo bar ^baz
      +$ git rev-list foo bar ^baz
       -----------------------------------------------------------------------
     - endif::git-rev-list[]
     - ifdef::git-log[]
     - -----------------------------------------------------------------------
     --	$ git log foo bar ^baz
     -+$ git log foo bar ^baz
     - -----------------------------------------------------------------------
     - endif::git-log[]
       
     -@@ Documentation/rev-list-description.txt: means "list all the commits which are reachable from 'foo' or 'bar', but
     + means "list all the commits which are reachable from 'foo' or 'bar', but
       not from 'baz'".
       
       A special notation "'<commit1>'..'<commit2>'" can be used as a
     @@ Documentation/rev-list-description.txt: means "list all the commits which are re
      +short-hand for "^'<commit1>' '<commit2>'". For example, either of
       the following may be used interchangeably:
       
     - ifdef::git-rev-list[]
       -----------------------------------------------------------------------
      -	$ git rev-list origin..HEAD
      -	$ git rev-list HEAD ^origin
      +$ git rev-list origin..HEAD
      +$ git rev-list HEAD ^origin
       -----------------------------------------------------------------------
     - endif::git-rev-list[]
     - ifdef::git-log[]
     - -----------------------------------------------------------------------
     --	$ git log origin..HEAD
     --	$ git log HEAD ^origin
     -+$ git log origin..HEAD
     -+$ git log HEAD ^origin
     - -----------------------------------------------------------------------
     - endif::git-log[]
       
     -@@ Documentation/rev-list-description.txt: between the two operands.  The following two commands are equivalent:
     + Another special notation is "'<commit1>'...'<commit2>'" which is useful
     +@@ Documentation/git-rev-list.txt: for merges.  The resulting set of commits is the symmetric difference
     + between the two operands.  The following two commands are equivalent:
       
     - ifdef::git-rev-list[]
       -----------------------------------------------------------------------
      -	$ git rev-list A B --not $(git merge-base --all A B)
      -	$ git rev-list A...B
      +$ git rev-list A B --not $(git merge-base --all A B)
      +$ git rev-list A...B
       -----------------------------------------------------------------------
     - endif::git-rev-list[]
     - ifdef::git-log[]
     - -----------------------------------------------------------------------
     --	$ git log A B --not $(git merge-base --all A B)
     --	$ git log A...B
     -+$ git log A B --not $(git merge-base --all A B)
     -+$ git log A...B
     - -----------------------------------------------------------------------
     - endif::git-log[]
     + 
     + 'rev-list' is a very essential Git command, since it
 -:  ---------- > 4:  cf934ddf33 git-rev-list.txt: tweak wording in set operations
 2:  daf00d9398 ! 5:  f61bbb57cb git-rev-list.txt: move description to separate file
     @@ Documentation/git-rev-list.txt: SYNOPSIS
      -given with a '{caret}' in front of them.  The output is given in reverse
      -chronological order by default.
      -
     --You can think of this as a set operation.  Commits given on the command
     --line form a set of commits that are reachable from any of them, and then
     --commits reachable from any of the ones given with '{caret}' in front are
     --subtracted from that set.  The remaining commits are what comes out in the
     --command's output.  Various other options and paths parameters can be used
     --to further limit the result.
     +-You can think of this as a set operation. Commits reachable from any of
     +-the commits given on the command line form a set, and then commits reachable
     +-from any of the ones given with '{caret}' in front are subtracted from that
     +-set.  The remaining commits are what comes out in the command's output.
     +-Various other options and paths parameters can be used to further limit the
     +-result.
      -
      -Thus, the following command:
      -
      ------------------------------------------------------------------------
     --	$ git rev-list foo bar ^baz
     +-$ git rev-list foo bar ^baz
      ------------------------------------------------------------------------
      -
      -means "list all the commits which are reachable from 'foo' or 'bar', but
      -not from 'baz'".
      -
      -A special notation "'<commit1>'..'<commit2>'" can be used as a
     --short-hand for "{caret}'<commit1>' '<commit2>'". For example, either of
     +-short-hand for "^'<commit1>' '<commit2>'". For example, either of
      -the following may be used interchangeably:
      -
      ------------------------------------------------------------------------
     --	$ git rev-list origin..HEAD
     --	$ git rev-list HEAD ^origin
     +-$ git rev-list origin..HEAD
     +-$ git rev-list HEAD ^origin
      ------------------------------------------------------------------------
      -
      -Another special notation is "'<commit1>'...'<commit2>'" which is useful
     @@ Documentation/git-rev-list.txt: SYNOPSIS
      -between the two operands.  The following two commands are equivalent:
      -
      ------------------------------------------------------------------------
     --	$ git rev-list A B --not $(git merge-base --all A B)
     --	$ git rev-list A...B
     +-$ git rev-list A B --not $(git merge-base --all A B)
     +-$ git rev-list A...B
      ------------------------------------------------------------------------
      +include::rev-list-description.txt[]
       
     @@ Documentation/rev-list-description.txt (new)
      +given with a '{caret}' in front of them.  The output is given in reverse
      +chronological order by default.
      +
     -+You can think of this as a set operation.  Commits given on the command
     -+line form a set of commits that are reachable from any of them, and then
     -+commits reachable from any of the ones given with '{caret}' in front are
     -+subtracted from that set.  The remaining commits are what comes out in the
     -+command's output.  Various other options and paths parameters can be used
     -+to further limit the result.
     ++You can think of this as a set operation. Commits reachable from any of
     ++the commits given on the command line form a set, and then commits reachable
     ++from any of the ones given with '{caret}' in front are subtracted from that
     ++set.  The remaining commits are what comes out in the command's output.
     ++Various other options and paths parameters can be used to further limit the
     ++result.
      +
      +Thus, the following command:
      +
      +-----------------------------------------------------------------------
     -+	$ git rev-list foo bar ^baz
     ++$ git rev-list foo bar ^baz
      +-----------------------------------------------------------------------
      +
      +means "list all the commits which are reachable from 'foo' or 'bar', but
      +not from 'baz'".
      +
      +A special notation "'<commit1>'..'<commit2>'" can be used as a
     -+short-hand for "{caret}'<commit1>' '<commit2>'". For example, either of
     ++short-hand for "^'<commit1>' '<commit2>'". For example, either of
      +the following may be used interchangeably:
      +
      +-----------------------------------------------------------------------
     -+	$ git rev-list origin..HEAD
     -+	$ git rev-list HEAD ^origin
     ++$ git rev-list origin..HEAD
     ++$ git rev-list HEAD ^origin
      +-----------------------------------------------------------------------
      +
      +Another special notation is "'<commit1>'...'<commit2>'" which is useful
     @@ Documentation/rev-list-description.txt (new)
      +between the two operands.  The following two commands are equivalent:
      +
      +-----------------------------------------------------------------------
     -+	$ git rev-list A B --not $(git merge-base --all A B)
     -+	$ git rev-list A...B
     ++$ git rev-list A B --not $(git merge-base --all A B)
     ++$ git rev-list A...B
      +-----------------------------------------------------------------------
 3:  eeaf4fe5dc ! 6:  d04b6c62a3 git-log.txt: include rev-list-description.txt
     @@ Documentation/git-log.txt: DESCRIPTION
      +
       The command takes options applicable to the linkgit:git-rev-list[1]
       command to control what is shown and how, and options applicable to
     - the linkgit:git-diff[1] family of commands to control how the changes
     + the linkgit:git-diff[1] command to control how the changes
      
       ## Documentation/git-rev-list.txt ##
      @@ Documentation/git-rev-list.txt: SYNOPSIS
     @@ Documentation/git-rev-list.txt: SYNOPSIS
       'rev-list' is a very essential Git command, since it
      
       ## Documentation/rev-list-description.txt ##
     -@@ Documentation/rev-list-description.txt: to further limit the result.
     +@@ Documentation/rev-list-description.txt: result.
       
       Thus, the following command:
       
      +ifdef::git-rev-list[]
       -----------------------------------------------------------------------
     - 	$ git rev-list foo bar ^baz
     + $ git rev-list foo bar ^baz
       -----------------------------------------------------------------------
      +endif::git-rev-list[]
      +ifdef::git-log[]
      +-----------------------------------------------------------------------
     -+	$ git log foo bar ^baz
     ++$ git log foo bar ^baz
      +-----------------------------------------------------------------------
      +endif::git-log[]
       
       means "list all the commits which are reachable from 'foo' or 'bar', but
       not from 'baz'".
      @@ Documentation/rev-list-description.txt: A special notation "'<commit1>'..'<commit2>'" can be used as a
     - short-hand for "{caret}'<commit1>' '<commit2>'". For example, either of
     + short-hand for "^'<commit1>' '<commit2>'". For example, either of
       the following may be used interchangeably:
       
      +ifdef::git-rev-list[]
       -----------------------------------------------------------------------
     - 	$ git rev-list origin..HEAD
     - 	$ git rev-list HEAD ^origin
     + $ git rev-list origin..HEAD
     + $ git rev-list HEAD ^origin
       -----------------------------------------------------------------------
      +endif::git-rev-list[]
      +ifdef::git-log[]
      +-----------------------------------------------------------------------
     -+	$ git log origin..HEAD
     -+	$ git log HEAD ^origin
     ++$ git log origin..HEAD
     ++$ git log HEAD ^origin
      +-----------------------------------------------------------------------
      +endif::git-log[]
       
     @@ Documentation/rev-list-description.txt: A special notation "'<commit1>'..'<commi
       
      +ifdef::git-rev-list[]
       -----------------------------------------------------------------------
     - 	$ git rev-list A B --not $(git merge-base --all A B)
     - 	$ git rev-list A...B
     + $ git rev-list A B --not $(git merge-base --all A B)
     + $ git rev-list A...B
       -----------------------------------------------------------------------
      +endif::git-rev-list[]
      +ifdef::git-log[]
      +-----------------------------------------------------------------------
     -+	$ git log A B --not $(git merge-base --all A B)
     -+	$ git log A...B
     ++$ git log A B --not $(git merge-base --all A B)
     ++$ git log A...B
      +-----------------------------------------------------------------------
      +endif::git-log[]

-- 
gitgitgadget

  parent reply	other threads:[~2020-07-09  2:16 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-28 21:11 [PATCH] doc: log takes multiple revision ranges Philippe Blain via GitGitGadget
2020-03-29  1:34 ` Junio C Hamano
2020-03-30 12:52   ` Philippe Blain
2020-03-30 17:09     ` Junio C Hamano
2020-07-05 20:42     ` Philip Oakley
2020-07-07 13:08       ` Philippe Blain
2020-03-31 21:53   ` Taylor Blau
2020-07-03  3:38 ` [PATCH v2 0/4] doc: include git rev-list description in git log doc Philippe Blain via GitGitGadget
2020-07-03  3:38   ` [PATCH v2 1/4] git-log.txt: add links to 'rev-list' and 'diff' docs Philippe Blain via GitGitGadget
2020-07-07  0:55     ` Junio C Hamano
2020-07-07 13:11       ` Philippe Blain
2020-07-03  3:38   ` [PATCH v2 2/4] git-rev-list.txt: move description to separate file Philippe Blain via GitGitGadget
2020-07-03  3:38   ` [PATCH v2 3/4] git-log.txt: include rev-list-description.txt Philippe Blain via GitGitGadget
2020-07-03  3:38   ` [PATCH v2 4/4] rev-list-description.txt: fix Asciidoc syntax Philippe Blain via GitGitGadget
2020-07-07  0:59     ` Junio C Hamano
2020-07-07 13:12       ` Philippe Blain
2020-07-09  2:16   ` Philippe Blain via GitGitGadget [this message]
2020-07-09  2:16     ` [PATCH v3 1/6] git-log.txt: add links to 'rev-list' and 'diff' docs Philippe Blain via GitGitGadget
2020-07-09  2:16     ` [PATCH v3 2/6] revisions.txt: describe 'rev1 rev2 ...' meaning for ranges Philippe Blain via GitGitGadget
2020-07-09  2:16     ` [PATCH v3 3/6] git-rev-list.txt: fix Asciidoc syntax Philippe Blain via GitGitGadget
2020-07-09  2:16     ` [PATCH v3 4/6] git-rev-list.txt: tweak wording in set operations Philippe Blain via GitGitGadget
2020-07-09  2:16     ` [PATCH v3 5/6] git-rev-list.txt: move description to separate file Philippe Blain via GitGitGadget
2020-07-09  2:16     ` [PATCH v3 6/6] git-log.txt: include rev-list-description.txt Philippe Blain via GitGitGadget

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=pull.590.v3.git.1594261008.gitgitgadget@gmail.com \
    --to=gitgitgadget@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=lawrencesiebert@gmail.com \
    --cc=levraiphilippeblain@gmail.com \
    --cc=liu.denton@gmail.com \
    --cc=me@ttaylorr.com \
    --cc=philipoakley@iee.email \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).