summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2020-07-30 14:22:26 -0700
committerJunio C Hamano <gitster@pobox.com>2020-07-30 14:22:26 -0700
commit28c33dede604b6d79be8b63ca9a53401cb3187f5 (patch)
treea17257ac77fcf56175733532e3d358a5b6db16ce
parent2196da6c492fcd776cf9209d6537235b75a58a3a (diff)
downloadgit-htmldocs-28c33dede604b6d79be8b63ca9a53401cb3187f5.tar.gz
Autogenerated HTML docs for v2.28.0-67-g79bcaf
-rw-r--r--RelNotes/2.29.0.txt67
-rw-r--r--git-commit-graph.html7
-rw-r--r--git-commit-graph.txt5
-rw-r--r--git-for-each-ref.html57
-rw-r--r--git-for-each-ref.txt27
-rw-r--r--git-log.html39
-rw-r--r--git-log.txt7
-rw-r--r--git-rev-list.html26
-rw-r--r--git-rev-list.txt40
-rw-r--r--git-rev-parse.html2
-rw-r--r--gitrevisions.html2
-rw-r--r--howto/keep-canonical-history-correct.html2
-rw-r--r--howto/maintain-git.html2
-rw-r--r--howto/new-command.html2
-rw-r--r--howto/rebase-from-internal-branch.html2
-rw-r--r--howto/rebuild-from-update-hook.html2
-rw-r--r--howto/recover-corrupted-blob-object.html2
-rw-r--r--howto/recover-corrupted-object-harder.html2
-rw-r--r--howto/revert-a-faulty-merge.html2
-rw-r--r--howto/revert-branch-rebase.html2
-rw-r--r--howto/separating-topic-branches.html2
-rw-r--r--howto/setup-git-server-over-http.html2
-rw-r--r--howto/update-hook-example.html2
-rw-r--r--howto/use-git-daemon.html2
-rw-r--r--howto/using-merge-subtree.html2
-rw-r--r--howto/using-signed-tag-in-pull-request.html2
-rw-r--r--rev-list-description.txt61
-rw-r--r--revisions.txt3
-rw-r--r--technical/commit-graph-format.txt2
29 files changed, 286 insertions, 89 deletions
diff --git a/RelNotes/2.29.0.txt b/RelNotes/2.29.0.txt
new file mode 100644
index 000000000..72e6682dd
--- /dev/null
+++ b/RelNotes/2.29.0.txt
@@ -0,0 +1,67 @@
+Git 2.29 Release Notes
+======================
+
+Updates since v2.28
+-------------------
+
+UI, Workflows & Features
+
+ * "git help log" has been enhanced by sharing more material from the
+ documentation for the underlying "git rev-list" command.
+
+ * "git for-each-ref --format=<>" learned %(contents:size).
+
+
+Performance, Internal Implementation, Development Support etc.
+
+ * The changed-path Bloom filter is improved using ideas from an
+ independent implementation.
+
+ * Updates to the changed-paths bloom filter.
+
+ * The test framework has been updated so that most tests will run
+ with predictable (artificial) timestamps.
+
+ * Preliminary clean-up of the refs API in preparation for adding a
+ new refs backend "reftable".
+
+ * Dev support to limit the use of test_must_fail to only git commands.
+
+
+Fixes since v2.28
+-----------------
+
+ * "git clone --separate-git-dir=$elsewhere" used to stomp on the
+ contents of the existing directory $elsewhere, which has been
+ taught to fail when $elsewhere is not an empty directory.
+ (merge dfaa209a79 bw/fail-cloning-into-non-empty later to maint).
+
+
+ * With the base fix to 2.27 regresion, any new extensions in a v0
+ repository would still be silently honored, which is not quite
+ right. Instead, complain and die loudly.
+ (merge ec91ffca04 jk/reject-newer-extensions-in-v0 later to maint).
+
+ * Fetching from a lazily cloned repository resulted at the server
+ side in attempts to lazy fetch objects that the client side has,
+ many of which will not be available from the third-party anyway.
+ (merge 77aa0941ce jt/avoid-lazy-fetching-upon-have-check later to maint).
+
+ * Fix to an ancient bug caused by an over-eager attempt for
+ optimization.
+ (merge a98f7fb366 rs/add-index-entry-optim-fix later to maint).
+
+ * Pushing a ref whose name contains non-ASCII character with the
+ "--force-with-lease" option did not work over smart HTTP protocol,
+ which has been corrected.
+ (merge cd85b447bf bc/push-cas-cquoted-refname later to maint).
+
+ * "git mv src dst", when src is an unmerged path, errored out
+ correctly but with an incorrect error message to claim that src is
+ not tracked, which has been clarified.
+ (merge 9b906af657 ct/mv-unmerged-path-error later to maint).
+
+ * Fix to a regression introduced during 2.27 cycle.
+ (merge cada7308ad en/fill-directory-exponential later to maint).
+
+ * Other code cleanup, docfix, build fix, etc.
diff --git a/git-commit-graph.html b/git-commit-graph.html
index 7be2b3a1f..bc958e874 100644
--- a/git-commit-graph.html
+++ b/git-commit-graph.html
@@ -820,7 +820,10 @@ existing commit-graph file.</p></div>
<div class="paragraph"><p>With the <code>--changed-paths</code> option, compute and write information about the
paths changed between a commit and its first parent. This operation can
take a while on large repositories. It provides significant performance gains
-for getting history of a directory or a file with <code>git log -- &lt;path&gt;</code>.</p></div>
+for getting history of a directory or a file with <code>git log -- &lt;path&gt;</code>. If
+this option is given, future commit-graph writes will automatically assume
+that this option was intended. Use <code>--no-changed-paths</code> to stop storing this
+data.</p></div>
<div class="paragraph"><p>With the <code>--split[=&lt;strategy&gt;]</code> option, write the commit-graph as a
chain of multiple commit-graph files stored in
<code>&lt;dir&gt;/info/commit-graphs</code>. Commit-graph layers are merged based on the
@@ -929,7 +932,7 @@ Write a commit-graph file containing all commits in the current
<div id="footer">
<div id="footer-text">
Last updated
- 2020-06-08 18:30:54 PDT
+ 2020-07-30 14:18:13 PDT
</div>
</div>
</body>
diff --git a/git-commit-graph.txt b/git-commit-graph.txt
index 8ca1764d3..17405c73a 100644
--- a/git-commit-graph.txt
+++ b/git-commit-graph.txt
@@ -62,7 +62,10 @@ existing commit-graph file.
With the `--changed-paths` option, compute and write information about the
paths changed between a commit and its first parent. This operation can
take a while on large repositories. It provides significant performance gains
-for getting history of a directory or a file with `git log -- <path>`.
+for getting history of a directory or a file with `git log -- <path>`. If
+this option is given, future commit-graph writes will automatically assume
+that this option was intended. Use `--no-changed-paths` to stop storing this
+data.
+
With the `--split[=<strategy>]` option, write the commit-graph as a
chain of multiple commit-graph files stored in
diff --git a/git-for-each-ref.html b/git-for-each-ref.html
index 43f652acf..0345c88ac 100644
--- a/git-for-each-ref.html
+++ b/git-for-each-ref.html
@@ -1109,13 +1109,54 @@ These are intended for working on a mix of annotated and lightweight tags.</p></
<div class="paragraph"><p>Fields that have name-email-date tuple as its value (<code>author</code>,
<code>committer</code>, and <code>tagger</code>) can be suffixed with <code>name</code>, <code>email</code>,
and <code>date</code> to extract the named component.</p></div>
-<div class="paragraph"><p>The complete message in a commit and tag object is <code>contents</code>.
-Its first line is <code>contents:subject</code>, where subject is the concatenation
-of all lines of the commit message up to the first blank line. The next
-line is <code>contents:body</code>, where body is all of the lines after the first
-blank line. The optional GPG signature is <code>contents:signature</code>. The
-first <code>N</code> lines of the message is obtained using <code>contents:lines=N</code>.
-Additionally, the trailers as interpreted by <a href="git-interpret-trailers.html">git-interpret-trailers(1)</a>
+<div class="paragraph"><p>The message in a commit or a tag object is <code>contents</code>, from which
+<code>contents:&lt;part&gt;</code> can be used to extract various parts out of:</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+contents:size
+</dt>
+<dd>
+<p>
+ The size in bytes of the commit or tag message.
+</p>
+</dd>
+<dt class="hdlist1">
+contents:subject
+</dt>
+<dd>
+<p>
+ The first paragraph of the message, which typically is a
+ single line, is taken as the "subject" of the commit or the
+ tag message.
+</p>
+</dd>
+<dt class="hdlist1">
+contents:body
+</dt>
+<dd>
+<p>
+ The remainder of the commit or the tag message that follows
+ the "subject".
+</p>
+</dd>
+<dt class="hdlist1">
+contents:signature
+</dt>
+<dd>
+<p>
+ The optional GPG signature of the tag.
+</p>
+</dd>
+<dt class="hdlist1">
+contents:lines=N
+</dt>
+<dd>
+<p>
+ The first <code>N</code> lines of the message.
+</p>
+</dd>
+</dl></div>
+<div class="paragraph"><p>Additionally, the trailers as interpreted by <a href="git-interpret-trailers.html">git-interpret-trailers(1)</a>
are obtained as <code>trailers</code> (or by using the historical alias
<code>contents:trailers</code>). Non-trailer lines from the trailer block can be omitted
with <code>trailers:only</code>. Whitespace-continuations can be removed from trailers so
@@ -1268,7 +1309,7 @@ will be reported.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-10 08:03:13 PDT
+ 2020-07-30 14:18:13 PDT
</div>
</div>
</body>
diff --git a/git-for-each-ref.txt b/git-for-each-ref.txt
index 6dcd39f6f..2ea71c5f6 100644
--- a/git-for-each-ref.txt
+++ b/git-for-each-ref.txt
@@ -232,12 +232,27 @@ Fields that have name-email-date tuple as its value (`author`,
`committer`, and `tagger`) can be suffixed with `name`, `email`,
and `date` to extract the named component.
-The complete message in a commit and tag object is `contents`.
-Its first line is `contents:subject`, where subject is the concatenation
-of all lines of the commit message up to the first blank line. The next
-line is `contents:body`, where body is all of the lines after the first
-blank line. The optional GPG signature is `contents:signature`. The
-first `N` lines of the message is obtained using `contents:lines=N`.
+The message in a commit or a tag object is `contents`, from which
+`contents:<part>` can be used to extract various parts out of:
+
+contents:size::
+ The size in bytes of the commit or tag message.
+
+contents:subject::
+ The first paragraph of the message, which typically is a
+ single line, is taken as the "subject" of the commit or the
+ tag message.
+
+contents:body::
+ The remainder of the commit or the tag message that follows
+ the "subject".
+
+contents:signature::
+ The optional GPG signature of the tag.
+
+contents:lines=N::
+ The first `N` lines of the message.
+
Additionally, the trailers as interpreted by linkgit:git-interpret-trailers[1]
are obtained as `trailers` (or by using the historical alias
`contents:trailers`). Non-trailer lines from the trailer block can be omitted
diff --git a/git-log.html b/git-log.html
index 03d26101f..fc1c69f36 100644
--- a/git-log.html
+++ b/git-log.html
@@ -758,9 +758,42 @@ git-log(1) Manual Page
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>Shows the commit logs.</p></div>
-<div class="paragraph"><p>The command takes options applicable to the <code>git rev-list</code>
+<div class="paragraph"><p>List commits that are reachable by following the <code>parent</code> links from the
+given commit(s), but exclude commits that are reachable from the one(s)
+given with a <em>&#94;</em> in front of them. The output is given in reverse
+chronological order by default.</p></div>
+<div class="paragraph"><p>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 <em>&#94;</em> in front are subtracted from that
+set. The remaining commits are what comes out in the command&#8217;s output.
+Various other options and paths parameters can be used to further limit the
+result.</p></div>
+<div class="paragraph"><p>Thus, the following command:</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>$ git log foo bar ^baz</code></pre>
+</div></div>
+<div class="paragraph"><p>means "list all the commits which are reachable from <em>foo</em> or <em>bar</em>, but
+not from <em>baz</em>".</p></div>
+<div class="paragraph"><p>A special notation "<em>&lt;commit1&gt;</em>..<em>&lt;commit2&gt;</em>" can be used as a
+short-hand for "^<em>&lt;commit1&gt;</em> <em>&lt;commit2&gt;</em>". For example, either of
+the following may be used interchangeably:</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>$ git log origin..HEAD
+$ git log HEAD ^origin</code></pre>
+</div></div>
+<div class="paragraph"><p>Another special notation is "<em>&lt;commit1&gt;</em>&#8230;<em>&lt;commit2&gt;</em>" which is useful
+for merges. The resulting set of commits is the symmetric difference
+between the two operands. The following two commands are equivalent:</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>$ git log A B --not $(git merge-base --all A B)
+$ git log A...B</code></pre>
+</div></div>
+<div class="paragraph"><p>The command takes options applicable to the <a href="git-rev-list.html">git-rev-list(1)</a>
command to control what is shown and how, and options applicable to
-the <code>git diff-*</code> commands to control how the changes
+the <a href="git-diff.html">git-diff(1)</a> command to control how the changes
each commit introduces are shown.</p></div>
</div>
</div>
@@ -5121,7 +5154,7 @@ and overridden by the <code>--notes=&lt;ref&gt;</code> option.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-04-29 14:18:27 PDT
+ 2020-07-30 14:18:13 PDT
</div>
</div>
</body>
diff --git a/git-log.txt b/git-log.txt
index 20e6d21a7..3fd26d521 100644
--- a/git-log.txt
+++ b/git-log.txt
@@ -15,9 +15,12 @@ DESCRIPTION
-----------
Shows the commit logs.
-The command takes options applicable to the `git rev-list`
+:git-log: 1
+include::rev-list-description.txt[]
+
+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] command to control how the changes
each commit introduces are shown.
diff --git a/git-rev-list.html b/git-rev-list.html
index ee38ad9e3..03628faca 100644
--- a/git-rev-list.html
+++ b/git-rev-list.html
@@ -761,34 +761,34 @@ git-rev-list(1) Manual Page
given commit(s), but exclude commits that are reachable from the one(s)
given with a <em>&#94;</em> in front of them. The output is given in reverse
chronological order by default.</p></div>
-<div class="paragraph"><p>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 <em>&#94;</em> in front are
-subtracted from that set. The remaining commits are what comes out in the
-command&#8217;s output. Various other options and paths parameters can be used
-to further limit the result.</p></div>
+<div class="paragraph"><p>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 <em>&#94;</em> in front are subtracted from that
+set. The remaining commits are what comes out in the command&#8217;s output.
+Various other options and paths parameters can be used to further limit the
+result.</p></div>
<div class="paragraph"><p>Thus, the following command:</p></div>
<div class="listingblock">
<div class="content">
-<pre><code> $ git rev-list foo bar ^baz</code></pre>
+<pre><code>$ git rev-list foo bar ^baz</code></pre>
</div></div>
<div class="paragraph"><p>means "list all the commits which are reachable from <em>foo</em> or <em>bar</em>, but
not from <em>baz</em>".</p></div>
<div class="paragraph"><p>A special notation "<em>&lt;commit1&gt;</em>..<em>&lt;commit2&gt;</em>" can be used as a
-short-hand for "&#94;'&lt;commit1&gt;' <em>&lt;commit2&gt;</em>". For example, either of
+short-hand for "^<em>&lt;commit1&gt;</em> <em>&lt;commit2&gt;</em>". For example, either of
the following may be used interchangeably:</p></div>
<div class="listingblock">
<div class="content">
-<pre><code> $ git rev-list origin..HEAD
- $ git rev-list HEAD ^origin</code></pre>
+<pre><code>$ git rev-list origin..HEAD
+$ git rev-list HEAD ^origin</code></pre>
</div></div>
<div class="paragraph"><p>Another special notation is "<em>&lt;commit1&gt;</em>&#8230;<em>&lt;commit2&gt;</em>" which is useful
for merges. The resulting set of commits is the symmetric difference
between the two operands. The following two commands are equivalent:</p></div>
<div class="listingblock">
<div class="content">
-<pre><code> $ git rev-list A B --not $(git merge-base --all A B)
- $ git rev-list A...B</code></pre>
+<pre><code>$ git rev-list A B --not $(git merge-base --all A B)
+$ git rev-list A...B</code></pre>
</div></div>
<div class="paragraph"><p><em>rev-list</em> is a very essential Git command, since it
provides the ability to build and traverse commit ancestry graphs. For
@@ -3413,7 +3413,7 @@ $ git log -2 --pretty=%h 4da45bef</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-10 08:03:13 PDT
+ 2020-07-30 14:18:13 PDT
</div>
</div>
</body>
diff --git a/git-rev-list.txt b/git-rev-list.txt
index 025c91143..5da66232d 100644
--- a/git-rev-list.txt
+++ b/git-rev-list.txt
@@ -14,44 +14,8 @@ SYNOPSIS
DESCRIPTION
-----------
-List commits that are reachable by following the `parent` links from the
-given commit(s), but exclude commits that are reachable from the one(s)
-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.
-
-Thus, the following command:
-
------------------------------------------------------------------------
- $ 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
-the following may be used interchangeably:
-
------------------------------------------------------------------------
- $ git rev-list origin..HEAD
- $ git rev-list HEAD ^origin
------------------------------------------------------------------------
-
-Another special notation is "'<commit1>'...'<commit2>'" which is useful
-for merges. The resulting set of commits is the symmetric difference
-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: 1
+include::rev-list-description.txt[]
'rev-list' is a very essential Git command, since it
provides the ability to build and traverse commit ancestry graphs. For
diff --git a/git-rev-parse.html b/git-rev-parse.html
index cc984c80f..725430e54 100644
--- a/git-rev-parse.html
+++ b/git-rev-parse.html
@@ -1641,6 +1641,8 @@ of commits, not just a single commit.</p></div>
specifying a single revision, using the notation described in the
previous section, means the set of commits <code>reachable</code> from the given
commit.</p></div>
+<div class="paragraph"><p>Specifying several revisions means the set of commits reachable from
+any of the given commits.</p></div>
<div class="paragraph"><p>A commit&#8217;s reachable set is the commit itself and the commits in
its ancestry chain.</p></div>
<div class="sect2">
diff --git a/gitrevisions.html b/gitrevisions.html
index c02083b7e..c030c1e5c 100644
--- a/gitrevisions.html
+++ b/gitrevisions.html
@@ -1131,6 +1131,8 @@ of commits, not just a single commit.</p></div>
specifying a single revision, using the notation described in the
previous section, means the set of commits <code>reachable</code> from the given
commit.</p></div>
+<div class="paragraph"><p>Specifying several revisions means the set of commits reachable from
+any of the given commits.</p></div>
<div class="paragraph"><p>A commit&#8217;s reachable set is the commit itself and the commits in
its ancestry chain.</p></div>
<div class="sect2">
diff --git a/howto/keep-canonical-history-correct.html b/howto/keep-canonical-history-correct.html
index 41673dd51..6a7d26e87 100644
--- a/howto/keep-canonical-history-correct.html
+++ b/howto/keep-canonical-history-correct.html
@@ -938,7 +938,7 @@ tip of your <em>master</em> again and redo the two merges:</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-07-27 09:38:01 PDT
+ 2020-07-30 14:19:46 PDT
</div>
</div>
</body>
diff --git a/howto/maintain-git.html b/howto/maintain-git.html
index 9b5decbe4..6baaca47b 100644
--- a/howto/maintain-git.html
+++ b/howto/maintain-git.html
@@ -1469,7 +1469,7 @@ $ git update-ref -d $mf/ai/topic</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-07-27 09:38:01 PDT
+ 2020-07-30 14:19:46 PDT
</div>
</div>
</body>
diff --git a/howto/new-command.html b/howto/new-command.html
index 83869baa8..94b14c5e5 100644
--- a/howto/new-command.html
+++ b/howto/new-command.html
@@ -863,7 +863,7 @@ letter [PATCH 0/n].
<div id="footer">
<div id="footer-text">
Last updated
- 2020-07-27 09:37:57 PDT
+ 2020-07-30 14:19:41 PDT
</div>
</div>
</body>
diff --git a/howto/rebase-from-internal-branch.html b/howto/rebase-from-internal-branch.html
index 44e3af35c..72983d6c9 100644
--- a/howto/rebase-from-internal-branch.html
+++ b/howto/rebase-from-internal-branch.html
@@ -895,7 +895,7 @@ the #1' commit.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-07-27 09:38:01 PDT
+ 2020-07-30 14:19:45 PDT
</div>
</div>
</body>
diff --git a/howto/rebuild-from-update-hook.html b/howto/rebuild-from-update-hook.html
index 35732097c..4f159a37c 100644
--- a/howto/rebuild-from-update-hook.html
+++ b/howto/rebuild-from-update-hook.html
@@ -847,7 +847,7 @@ This is still crude and does not protect against simultaneous
<div id="footer">
<div id="footer-text">
Last updated
- 2020-07-27 09:38:00 PDT
+ 2020-07-30 14:19:45 PDT
</div>
</div>
</body>
diff --git a/howto/recover-corrupted-blob-object.html b/howto/recover-corrupted-blob-object.html
index c7009c726..55dae5f8e 100644
--- a/howto/recover-corrupted-blob-object.html
+++ b/howto/recover-corrupted-blob-object.html
@@ -880,7 +880,7 @@ thing.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-07-27 09:38:00 PDT
+ 2020-07-30 14:19:45 PDT
</div>
</div>
</body>
diff --git a/howto/recover-corrupted-object-harder.html b/howto/recover-corrupted-object-harder.html
index b023a63a1..f7a41ec65 100644
--- a/howto/recover-corrupted-object-harder.html
+++ b/howto/recover-corrupted-object-harder.html
@@ -1189,7 +1189,7 @@ int main(int argc, char **argv)
<div id="footer">
<div id="footer-text">
Last updated
- 2020-07-27 09:38:00 PDT
+ 2020-07-30 14:19:45 PDT
</div>
</div>
</body>
diff --git a/howto/revert-a-faulty-merge.html b/howto/revert-a-faulty-merge.html
index 8f3715b9e..6a5b994cb 100644
--- a/howto/revert-a-faulty-merge.html
+++ b/howto/revert-a-faulty-merge.html
@@ -1025,7 +1025,7 @@ P---o---o---M---x---x---W---x---M2
<div id="footer">
<div id="footer-text">
Last updated
- 2020-07-27 09:38:00 PDT
+ 2020-07-30 14:19:44 PDT
</div>
</div>
</body>
diff --git a/howto/revert-branch-rebase.html b/howto/revert-branch-rebase.html
index 984e6799c..7baca1c1b 100644
--- a/howto/revert-branch-rebase.html
+++ b/howto/revert-branch-rebase.html
@@ -907,7 +907,7 @@ Committed merge 7fb9b7262a1d1e0a47bbfdcbbcf50ce0635d3f8f
<div id="footer">
<div id="footer-text">
Last updated
- 2020-07-27 09:37:58 PDT
+ 2020-07-30 14:19:41 PDT
</div>
</div>
</body>
diff --git a/howto/separating-topic-branches.html b/howto/separating-topic-branches.html
index 9eee04645..1b684df6d 100644
--- a/howto/separating-topic-branches.html
+++ b/howto/separating-topic-branches.html
@@ -841,7 +841,7 @@ o---o"master"</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-07-27 09:37:59 PDT
+ 2020-07-30 14:19:44 PDT
</div>
</div>
</body>
diff --git a/howto/setup-git-server-over-http.html b/howto/setup-git-server-over-http.html
index 99e881c7c..0ac311cb4 100644
--- a/howto/setup-git-server-over-http.html
+++ b/howto/setup-git-server-over-http.html
@@ -1071,7 +1071,7 @@ help diagnosing the problem, but removes security checks.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-07-27 09:37:59 PDT
+ 2020-07-30 14:19:43 PDT
</div>
</div>
</body>
diff --git a/howto/update-hook-example.html b/howto/update-hook-example.html
index a5e0e062d..2ae26f009 100644
--- a/howto/update-hook-example.html
+++ b/howto/update-hook-example.html
@@ -930,7 +930,7 @@ that JC can make non-fast-forward pushes on it.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-07-27 09:37:59 PDT
+ 2020-07-30 14:19:43 PDT
</div>
</div>
</body>
diff --git a/howto/use-git-daemon.html b/howto/use-git-daemon.html
index 1c600aa36..8a91fea89 100644
--- a/howto/use-git-daemon.html
+++ b/howto/use-git-daemon.html
@@ -791,7 +791,7 @@ a good practice to put the paths after a "--" separator.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-07-27 09:37:59 PDT
+ 2020-07-30 14:19:42 PDT
</div>
</div>
</body>
diff --git a/howto/using-merge-subtree.html b/howto/using-merge-subtree.html
index 2041e17a7..3cec12c07 100644
--- a/howto/using-merge-subtree.html
+++ b/howto/using-merge-subtree.html
@@ -848,7 +848,7 @@ Please note that if the other project merges from you, then it will
<div id="footer">
<div id="footer-text">
Last updated
- 2020-07-27 09:37:58 PDT
+ 2020-07-30 14:19:41 PDT
</div>
</div>
</body>
diff --git a/howto/using-signed-tag-in-pull-request.html b/howto/using-signed-tag-in-pull-request.html
index 4381f87d0..c49bdd12c 100644
--- a/howto/using-signed-tag-in-pull-request.html
+++ b/howto/using-signed-tag-in-pull-request.html
@@ -952,7 +952,7 @@ as part of the merge commit.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-07-27 09:37:58 PDT
+ 2020-07-30 14:19:42 PDT
</div>
</div>
</body>
diff --git a/rev-list-description.txt b/rev-list-description.txt
new file mode 100644
index 000000000..a9efa7fa2
--- /dev/null
+++ b/rev-list-description.txt
@@ -0,0 +1,61 @@
+List commits that are reachable by following the `parent` links from the
+given commit(s), but exclude commits that are reachable from the one(s)
+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 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:
+
+ifdef::git-rev-list[]
+-----------------------------------------------------------------------
+$ git rev-list foo bar ^baz
+-----------------------------------------------------------------------
+endif::git-rev-list[]
+ifdef::git-log[]
+-----------------------------------------------------------------------
+$ git log foo bar ^baz
+-----------------------------------------------------------------------
+endif::git-log[]
+
+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 "^'<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
+-----------------------------------------------------------------------
+endif::git-rev-list[]
+ifdef::git-log[]
+-----------------------------------------------------------------------
+$ git log origin..HEAD
+$ git log HEAD ^origin
+-----------------------------------------------------------------------
+endif::git-log[]
+
+Another special notation is "'<commit1>'...'<commit2>'" which is useful
+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
+-----------------------------------------------------------------------
+endif::git-rev-list[]
+ifdef::git-log[]
+-----------------------------------------------------------------------
+$ git log A B --not $(git merge-base --all A B)
+$ git log A...B
+-----------------------------------------------------------------------
+endif::git-log[]
diff --git a/revisions.txt b/revisions.txt
index 1ad95065c..d9169c062 100644
--- a/revisions.txt
+++ b/revisions.txt
@@ -254,6 +254,9 @@ specifying a single revision, using the notation described in the
previous section, means the set of commits `reachable` from the given
commit.
+Specifying several revisions means the set of commits reachable from
+any of the given commits.
+
A commit's reachable set is the commit itself and the commits in
its ancestry chain.
diff --git a/technical/commit-graph-format.txt b/technical/commit-graph-format.txt
index 1beef1718..440541045 100644
--- a/technical/commit-graph-format.txt
+++ b/technical/commit-graph-format.txt
@@ -32,7 +32,7 @@ the body into "chunks" and provide a binary lookup table at the beginning
of the body. The header includes certain values, such as number of chunks
and hash type.
-All 4-byte numbers are in network order.
+All multi-byte numbers are in network byte order.
HEADER: