diff options
author | Junio C Hamano <gitster@pobox.com> | 2020-07-30 14:22:26 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-07-30 14:22:26 -0700 |
commit | 28c33dede604b6d79be8b63ca9a53401cb3187f5 (patch) | |
tree | a17257ac77fcf56175733532e3d358a5b6db16ce | |
parent | 2196da6c492fcd776cf9209d6537235b75a58a3a (diff) | |
download | git-htmldocs-28c33dede604b6d79be8b63ca9a53401cb3187f5.tar.gz |
Autogenerated HTML docs for v2.28.0-67-g79bcaf
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 -- <path></code>.</p></div>
+for getting history of a directory or a file with <code>git log -- <path></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[=<strategy>]</code> option, write the commit-graph as a
chain of multiple commit-graph files stored in
<code><dir>/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:<part></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>^</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>^</em> 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.</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><commit1></em>..<em><commit2></em>" can be used as a
+short-hand for "^<em><commit1></em> <em><commit2></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><commit1></em>…<em><commit2></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=<ref></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>^</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>^</em> 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.</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>^</em> 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.</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><commit1></em>..<em><commit2></em>" can be used as a
-short-hand for "^'<commit1>' <em><commit2></em>". For example, either of
+short-hand for "^<em><commit1></em> <em><commit2></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><commit1></em>…<em><commit2></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’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’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: |