summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2020-11-18 14:15:08 -0800
committerJunio C Hamano <gitster@pobox.com>2020-11-18 14:15:08 -0800
commitb7676d5ada0941ade7ac9acb8ce985686b62b2ab (patch)
tree11ddf24c8178241b09e082064ac45508a805f0e6
parentee43d18844df1f78dad8b389cbb393b211073d17 (diff)
downloadgit-htmldocs-b7676d5ada0941ade7ac9acb8ce985686b62b2ab.tar.gz
Autogenerated HTML docs for v2.29.2-334-gfaefd
-rw-r--r--RelNotes/2.30.0.txt35
-rw-r--r--blame-options.txt9
-rw-r--r--cmds-plumbinginterrogators.txt3
-rw-r--r--diff-options.txt5
-rw-r--r--git-annotate.html37
-rw-r--r--git-blame.html37
-rw-r--r--git-config.html49
-rw-r--r--git-diff-files.html5
-rw-r--r--git-diff-index.html5
-rw-r--r--git-diff-tree.html5
-rw-r--r--git-diff.html5
-rw-r--r--git-for-each-repo.html819
-rw-r--r--git-for-each-repo.txt59
-rw-r--r--git-format-patch.html5
-rw-r--r--git-grep.html8
-rw-r--r--git-grep.txt6
-rw-r--r--git-log.html45
-rw-r--r--git-log.txt15
-rw-r--r--git-maintenance.html142
-rw-r--r--git-maintenance.txt99
-rw-r--r--git-show.html5
-rw-r--r--git.html8
-rw-r--r--gitk.html39
-rw-r--r--gitk.txt20
-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--line-range-format.txt28
-rw-r--r--line-range-options.txt15
41 files changed, 1384 insertions, 154 deletions
diff --git a/RelNotes/2.30.0.txt b/RelNotes/2.30.0.txt
index defa865a6..0933a7f84 100644
--- a/RelNotes/2.30.0.txt
+++ b/RelNotes/2.30.0.txt
@@ -63,6 +63,9 @@ UI, Workflows & Features
* Exit codes from "git remote add" etc. were not usable by scripted
callers, but now they are.
+ * "git archive" now allows compression level higher than "-9"
+ when generating tar.gz output.
+
* Zsh autocompletion (in contrib/) update.
@@ -101,6 +104,8 @@ Performance, Internal Implementation, Development Support etc.
* Test scripts are being prepared to transition of the default branch
name to 'main'.
+ * "git fetch --depth=<n>" over the stateless RPC / smart HTTP
+ transport handled EOF from the client poorly at the server end.
Fixes since v2.29
@@ -182,6 +187,36 @@ Fixes since v2.29
or so).
(merge c779386182 jc/sequencer-stopped-sha-simplify later to maint).
+ * The code to see if "git stash drop" can safely remove refs/stash
+ has been made more carerful.
+ (merge 4f44c5659b rs/empty-reflog-check-fix later to maint).
+
+ * "git log -L<range>:<path>" is documented to take no pathspec, but
+ this was not enforced by the command line option parser, which has
+ been corrected.
+ (merge 39664cb0ac jc/line-log-takes-no-pathspec later to maint).
+
+ * "git format-patch --output=there" did not work as expected and
+ instead crashed. The option is now supported.
+ (merge dc1672dd10 jk/format-patch-output later to maint).
+
+ * Define ARM64 compiled with MSVC to be little-endian.
+ (merge 0c038fc65a dg/bswap-msvc later to maint).
+
+ * "git rebase -i" did not store ORIG_HEAD correctly.
+ (merge 8843302307 pw/rebase-i-orig-head later to maint).
+
+ * "git blame -L :funcname -- path" did not work well for a path for
+ which a userdiff driver is defined.
+
+ * "make DEVELOPER=1 sparse" used to run sparse and let it emit
+ warnings; now such warnings will cause an error.
+ (merge 521dc56270 jc/sparse-error-for-developer-build later to maint).
+
+ * "git blame --ignore-revs-file=<file>" learned to ignore a
+ non-existent object name in the input, instead of complaining.
+ (merge c714d05875 jc/blame-ignore-fix later to maint).
+
* Other code cleanup, docfix, build fix, etc.
(merge 3e0a5dc9af cc/doc-filter-branch-typofix later to maint).
(merge 32c83afc2c cw/ci-ghwf-check-ws-errors later to maint).
diff --git a/blame-options.txt b/blame-options.txt
index 88750af7a..dc3bceb6d 100644
--- a/blame-options.txt
+++ b/blame-options.txt
@@ -11,11 +11,12 @@
-L <start>,<end>::
-L :<funcname>::
- Annotate only the given line range. May be specified multiple times.
- Overlapping ranges are allowed.
+ Annotate only the line range given by '<start>,<end>',
+ or by the function name regex '<funcname>'.
+ May be specified multiple times. Overlapping ranges are allowed.
+
-<start> and <end> are optional. ``-L <start>'' or ``-L <start>,'' spans from
-<start> to end of file. ``-L ,<end>'' spans from start of file to <end>.
+'<start>' and '<end>' are optional. `-L <start>` or `-L <start>,` spans from
+'<start>' to end of file. `-L ,<end>` spans from start of file to '<end>'.
+
include::line-range-format.txt[]
diff --git a/cmds-plumbinginterrogators.txt b/cmds-plumbinginterrogators.txt
index 1b5c8dc06..fe653a8d7 100644
--- a/cmds-plumbinginterrogators.txt
+++ b/cmds-plumbinginterrogators.txt
@@ -16,6 +16,9 @@ linkgit:git-diff-tree[1]::
linkgit:git-for-each-ref[1]::
Output information on each ref.
+linkgit:git-for-each-repo[1]::
+ Run a Git command on a list of repositories.
+
linkgit:git-get-tar-commit-id[1]::
Extract commit ID from an archive created using git-archive.
diff --git a/diff-options.txt b/diff-options.txt
index 2e7a93894..746b144c7 100644
--- a/diff-options.txt
+++ b/diff-options.txt
@@ -704,7 +704,10 @@ endif::git-format-patch[]
-W::
--function-context::
- Show whole surrounding functions of changes.
+ Show whole function as context lines for each change.
+ The function names are determined in the same way as
+ `git diff` works out patch hunk headers (see 'Defining a
+ custom hunk-header' in linkgit:gitattributes[5]).
ifndef::git-format-patch[]
ifndef::git-log[]
diff --git a/git-annotate.html b/git-annotate.html
index 360bbf31a..ea134cd13 100644
--- a/git-annotate.html
+++ b/git-annotate.html
@@ -803,45 +803,48 @@ familiar command name for people coming from other SCM systems.</p></div>
</dt>
<dd>
<p>
- Annotate only the given line range. May be specified multiple times.
- Overlapping ranges are allowed.
+ Annotate only the line range given by <em>&lt;start&gt;,&lt;end&gt;</em>,
+ or by the function name regex <em>&lt;funcname&gt;</em>.
+ May be specified multiple times. Overlapping ranges are allowed.
</p>
-<div class="paragraph"><p>&lt;start&gt; and &lt;end&gt; are optional. &#8220;-L &lt;start&gt;&#8221; or &#8220;-L &lt;start&gt;,&#8221; spans from
-&lt;start&gt; to end of file. &#8220;-L ,&lt;end&gt;&#8221; spans from start of file to &lt;end&gt;.</p></div>
-<div class="paragraph"><p>&lt;start&gt; and &lt;end&gt; can take one of these forms:</p></div>
+<div class="paragraph"><p><em>&lt;start&gt;</em> and <em>&lt;end&gt;</em> are optional. <code>-L &lt;start&gt;</code> or <code>-L &lt;start&gt;,</code> spans from
+<em>&lt;start&gt;</em> to end of file. <code>-L ,&lt;end&gt;</code> spans from start of file to <em>&lt;end&gt;</em>.</p></div>
+<div class="paragraph"><p><em>&lt;start&gt;</em> and <em>&lt;end&gt;</em> can take one of these forms:</p></div>
<div class="ulist"><ul>
<li>
<p>
number
</p>
-<div class="paragraph"><p>If &lt;start&gt; or &lt;end&gt; is a number, it specifies an
+<div class="paragraph"><p>If <em>&lt;start&gt;</em> or <em>&lt;end&gt;</em> is a number, it specifies an
absolute line number (lines count from 1).</p></div>
</li>
<li>
<p>
-/regex/
+<code>/regex/</code>
</p>
<div class="paragraph"><p>This form will use the first line matching the given
-POSIX regex. If &lt;start&gt; is a regex, it will search from the end of
+POSIX regex. If <em>&lt;start&gt;</em> is a regex, it will search from the end of
the previous <code>-L</code> range, if any, otherwise from the start of file.
-If &lt;start&gt; is &#8220;^/regex/&#8221;, it will search from the start of file.
-If &lt;end&gt; is a regex, it will search
-starting at the line given by &lt;start&gt;.</p></div>
+If <em>&lt;start&gt;</em> is <code>^/regex/</code>, it will search from the start of file.
+If <em>&lt;end&gt;</em> is a regex, it will search
+starting at the line given by <em>&lt;start&gt;</em>.</p></div>
</li>
<li>
<p>
+offset or -offset
</p>
-<div class="paragraph"><p>This is only valid for &lt;end&gt; and will specify a number
-of lines before or after the line given by &lt;start&gt;.</p></div>
+<div class="paragraph"><p>This is only valid for <em>&lt;end&gt;</em> and will specify a number
+of lines before or after the line given by <em>&lt;start&gt;</em>.</p></div>
</li>
</ul></div>
-<div class="paragraph"><p>If &#8220;:&lt;funcname&gt;&#8221; is given in place of &lt;start&gt; and &lt;end&gt;, it is a
+<div class="paragraph"><p>If <code>:&lt;funcname&gt;</code> is given in place of <em>&lt;start&gt;</em> and <em>&lt;end&gt;</em>, it is a
regular expression that denotes the range from the first funcname line
-that matches &lt;funcname&gt;, up to the next funcname line. &#8220;:&lt;funcname&gt;&#8221;
+that matches <em>&lt;funcname&gt;</em>, up to the next funcname line. <code>:&lt;funcname&gt;</code>
searches from the end of the previous <code>-L</code> range, if any, otherwise
-from the start of file. &#8220;^:&lt;funcname&gt;&#8221; searches from the start of
-file.</p></div>
+from the start of file. <code>^:&lt;funcname&gt;</code> searches from the start of
+file. The function names are determined in the same way as <code>git diff</code>
+works out patch hunk headers (see <em>Defining a custom hunk-header</em>
+in <a href="gitattributes.html">gitattributes(5)</a>).</p></div>
</dd>
<dt class="hdlist1">
-l
diff --git a/git-blame.html b/git-blame.html
index 94c40493c..3ff88353a 100644
--- a/git-blame.html
+++ b/git-blame.html
@@ -825,45 +825,48 @@ ea4c7f9bf69e781dd0cd88d2bccb2bf5cc15c9a7 git-blame: Make the output</code></pre>
</dt>
<dd>
<p>
- Annotate only the given line range. May be specified multiple times.
- Overlapping ranges are allowed.
+ Annotate only the line range given by <em>&lt;start&gt;,&lt;end&gt;</em>,
+ or by the function name regex <em>&lt;funcname&gt;</em>.
+ May be specified multiple times. Overlapping ranges are allowed.
</p>
-<div class="paragraph"><p>&lt;start&gt; and &lt;end&gt; are optional. &#8220;-L &lt;start&gt;&#8221; or &#8220;-L &lt;start&gt;,&#8221; spans from
-&lt;start&gt; to end of file. &#8220;-L ,&lt;end&gt;&#8221; spans from start of file to &lt;end&gt;.</p></div>
-<div class="paragraph"><p>&lt;start&gt; and &lt;end&gt; can take one of these forms:</p></div>
+<div class="paragraph"><p><em>&lt;start&gt;</em> and <em>&lt;end&gt;</em> are optional. <code>-L &lt;start&gt;</code> or <code>-L &lt;start&gt;,</code> spans from
+<em>&lt;start&gt;</em> to end of file. <code>-L ,&lt;end&gt;</code> spans from start of file to <em>&lt;end&gt;</em>.</p></div>
+<div class="paragraph"><p><em>&lt;start&gt;</em> and <em>&lt;end&gt;</em> can take one of these forms:</p></div>
<div class="ulist"><ul>
<li>
<p>
number
</p>
-<div class="paragraph"><p>If &lt;start&gt; or &lt;end&gt; is a number, it specifies an
+<div class="paragraph"><p>If <em>&lt;start&gt;</em> or <em>&lt;end&gt;</em> is a number, it specifies an
absolute line number (lines count from 1).</p></div>
</li>
<li>
<p>
-/regex/
+<code>/regex/</code>
</p>
<div class="paragraph"><p>This form will use the first line matching the given
-POSIX regex. If &lt;start&gt; is a regex, it will search from the end of
+POSIX regex. If <em>&lt;start&gt;</em> is a regex, it will search from the end of
the previous <code>-L</code> range, if any, otherwise from the start of file.
-If &lt;start&gt; is &#8220;^/regex/&#8221;, it will search from the start of file.
-If &lt;end&gt; is a regex, it will search
-starting at the line given by &lt;start&gt;.</p></div>
+If <em>&lt;start&gt;</em> is <code>^/regex/</code>, it will search from the start of file.
+If <em>&lt;end&gt;</em> is a regex, it will search
+starting at the line given by <em>&lt;start&gt;</em>.</p></div>
</li>
<li>
<p>
+offset or -offset
</p>
-<div class="paragraph"><p>This is only valid for &lt;end&gt; and will specify a number
-of lines before or after the line given by &lt;start&gt;.</p></div>
+<div class="paragraph"><p>This is only valid for <em>&lt;end&gt;</em> and will specify a number
+of lines before or after the line given by <em>&lt;start&gt;</em>.</p></div>
</li>
</ul></div>
-<div class="paragraph"><p>If &#8220;:&lt;funcname&gt;&#8221; is given in place of &lt;start&gt; and &lt;end&gt;, it is a
+<div class="paragraph"><p>If <code>:&lt;funcname&gt;</code> is given in place of <em>&lt;start&gt;</em> and <em>&lt;end&gt;</em>, it is a
regular expression that denotes the range from the first funcname line
-that matches &lt;funcname&gt;, up to the next funcname line. &#8220;:&lt;funcname&gt;&#8221;
+that matches <em>&lt;funcname&gt;</em>, up to the next funcname line. <code>:&lt;funcname&gt;</code>
searches from the end of the previous <code>-L</code> range, if any, otherwise
-from the start of file. &#8220;^:&lt;funcname&gt;&#8221; searches from the start of
-file.</p></div>
+from the start of file. <code>^:&lt;funcname&gt;</code> searches from the start of
+file. The function names are determined in the same way as <code>git diff</code>
+works out patch hunk headers (see <em>Defining a custom hunk-header</em>
+in <a href="gitattributes.html">gitattributes(5)</a>).</p></div>
</dd>
<dt class="hdlist1">
-l
diff --git a/git-config.html b/git-config.html
index 3f507383a..b60800884 100644
--- a/git-config.html
+++ b/git-config.html
@@ -6851,6 +6851,45 @@ mailmap.blob
</p>
</dd>
<dt class="hdlist1">
+maintenance.auto
+</dt>
+<dd>
+<p>
+ This boolean config option controls whether some commands run
+ <code>git maintenance run --auto</code> after doing their normal work. Defaults
+ to true.
+</p>
+</dd>
+<dt class="hdlist1">
+maintenance.strategy
+</dt>
+<dd>
+<p>
+ This string config option provides a way to specify one of a few
+ recommended schedules for background maintenance. This only affects
+ which tasks are run during <code>git maintenance run --schedule=X</code>
+ commands, provided no <code>--task=&lt;task&gt;</code> arguments are provided.
+ Further, if a <code>maintenance.&lt;task&gt;.schedule</code> config value is set,
+ then that value is used instead of the one provided by
+ <code>maintenance.strategy</code>. The possible strategy strings are:
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+<code>none</code>: This default setting implies no task are run at any schedule.
+</p>
+</li>
+<li>
+<p>
+<code>incremental</code>: This setting optimizes for performing small maintenance
+ activities that do not delete any data. This does not schedule the <code>gc</code>
+ task, but runs the <code>prefetch</code> and <code>commit-graph</code> tasks hourly and the
+ <code>loose-objects</code> and <code>incremental-repack</code> tasks daily.
+</p>
+</li>
+</ul></div>
+</dd>
+<dt class="hdlist1">
maintenance.&lt;task&gt;.enabled
</dt>
<dd>
@@ -6863,6 +6902,16 @@ maintenance.&lt;task&gt;.enabled
</p>
</dd>
<dt class="hdlist1">
+maintenance.&lt;task&gt;.schedule
+</dt>
+<dd>
+<p>
+ This config option controls whether or not the given <code>&lt;task&gt;</code> runs
+ during a <code>git maintenance run --schedule=&lt;frequency&gt;</code> command. The
+ value must be one of "hourly", "daily", or "weekly".
+</p>
+</dd>
+<dt class="hdlist1">
maintenance.commit-graph.auto
</dt>
<dd>
diff --git a/git-diff-files.html b/git-diff-files.html
index e4df7fa43..51c8c99b4 100644
--- a/git-diff-files.html
+++ b/git-diff-files.html
@@ -1892,7 +1892,10 @@ matches "<code>fooasdfbar</code>" and "<code>foo/bar/baz/asdf</code>" but not "<
</dt>
<dd>
<p>
- Show whole surrounding functions of changes.
+ Show whole function as context lines for each change.
+ The function names are determined in the same way as
+ <code>git diff</code> works out patch hunk headers (see <em>Defining a
+ custom hunk-header</em> in <a href="gitattributes.html">gitattributes(5)</a>).
</p>
</dd>
<dt class="hdlist1">
diff --git a/git-diff-index.html b/git-diff-index.html
index 6aab64ae4..4bae9f60a 100644
--- a/git-diff-index.html
+++ b/git-diff-index.html
@@ -1893,7 +1893,10 @@ matches "<code>fooasdfbar</code>" and "<code>foo/bar/baz/asdf</code>" but not "<
</dt>
<dd>
<p>
- Show whole surrounding functions of changes.
+ Show whole function as context lines for each change.
+ The function names are determined in the same way as
+ <code>git diff</code> works out patch hunk headers (see <em>Defining a
+ custom hunk-header</em> in <a href="gitattributes.html">gitattributes(5)</a>).
</p>
</dd>
<dt class="hdlist1">
diff --git a/git-diff-tree.html b/git-diff-tree.html
index e3a330592..008aea02f 100644
--- a/git-diff-tree.html
+++ b/git-diff-tree.html
@@ -1894,7 +1894,10 @@ matches "<code>fooasdfbar</code>" and "<code>foo/bar/baz/asdf</code>" but not "<
</dt>
<dd>
<p>
- Show whole surrounding functions of changes.
+ Show whole function as context lines for each change.
+ The function names are determined in the same way as
+ <code>git diff</code> works out patch hunk headers (see <em>Defining a
+ custom hunk-header</em> in <a href="gitattributes.html">gitattributes(5)</a>).
</p>
</dd>
<dt class="hdlist1">
diff --git a/git-diff.html b/git-diff.html
index f6e217eed..2f44a61b8 100644
--- a/git-diff.html
+++ b/git-diff.html
@@ -2027,7 +2027,10 @@ matches "<code>fooasdfbar</code>" and "<code>foo/bar/baz/asdf</code>" but not "<
</dt>
<dd>
<p>
- Show whole surrounding functions of changes.
+ Show whole function as context lines for each change.
+ The function names are determined in the same way as
+ <code>git diff</code> works out patch hunk headers (see <em>Defining a
+ custom hunk-header</em> in <a href="gitattributes.html">gitattributes(5)</a>).
</p>
</dd>
<dt class="hdlist1">
diff --git a/git-for-each-repo.html b/git-for-each-repo.html
new file mode 100644
index 000000000..b724dd7c9
--- /dev/null
+++ b/git-for-each-repo.html
@@ -0,0 +1,819 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+<meta name="generator" content="AsciiDoc 9.0.0rc2" />
+<title>git-for-each-repo(1)</title>
+<style type="text/css">
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */
+
+/* Default font. */
+body {
+ font-family: Georgia,serif;
+}
+
+/* Title font. */
+h1, h2, h3, h4, h5, h6,
+div.title, caption.title,
+thead, p.table.header,
+#toctitle,
+#author, #revnumber, #revdate, #revremark,
+#footer {
+ font-family: Arial,Helvetica,sans-serif;
+}
+
+body {
+ margin: 1em 5% 1em 5%;
+}
+
+a {
+ color: blue;
+ text-decoration: underline;
+}
+a:visited {
+ color: fuchsia;
+}
+
+em {
+ font-style: italic;
+ color: navy;
+}
+
+strong {
+ font-weight: bold;
+ color: #083194;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #527bbd;
+ margin-top: 1.2em;
+ margin-bottom: 0.5em;
+ line-height: 1.3;
+}
+
+h1, h2, h3 {
+ border-bottom: 2px solid silver;
+}
+h2 {
+ padding-top: 0.5em;
+}
+h3 {
+ float: left;
+}
+h3 + * {
+ clear: left;
+}
+h5 {
+ font-size: 1.0em;
+}
+
+div.sectionbody {
+ margin-left: 0;
+}
+
+hr {
+ border: 1px solid silver;
+}
+
+p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+ul, ol, li > p {
+ margin-top: 0;
+}
+ul > li { color: #aaa; }
+ul > li > * { color: black; }
+
+.monospaced, code, pre {
+ font-family: "Courier New", Courier, monospace;
+ font-size: inherit;
+ color: navy;
+ padding: 0;
+ margin: 0;
+}
+pre {
+ white-space: pre-wrap;
+}
+
+#author {
+ color: #527bbd;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+#email {
+}
+#revnumber, #revdate, #revremark {
+}
+
+#footer {
+ font-size: small;
+ border-top: 2px solid silver;
+ padding-top: 0.5em;
+ margin-top: 4.0em;
+}
+#footer-text {
+ float: left;
+ padding-bottom: 0.5em;
+}
+#footer-badges {
+ float: right;
+ padding-bottom: 0.5em;
+}
+
+#preamble {
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+}
+div.imageblock, div.exampleblock, div.verseblock,
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
+div.admonitionblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.admonitionblock {
+ margin-top: 2.0em;
+ margin-bottom: 2.0em;
+ margin-right: 10%;
+ color: #606060;
+}
+
+div.content { /* Block element content. */
+ padding: 0;
+}
+
+/* Block element titles. */
+div.title, caption.title {
+ color: #527bbd;
+ font-weight: bold;
+ text-align: left;
+ margin-top: 1.0em;
+ margin-bottom: 0.5em;
+}
+div.title + * {
+ margin-top: 0;
+}
+
+td div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content div.title:first-child {
+ margin-top: 0.0em;
+}
+div.content + div.title {
+ margin-top: 0.0em;
+}
+
+div.sidebarblock > div.content {
+ background: #ffffee;
+ border: 1px solid #dddddd;
+ border-left: 4px solid #f0f0f0;
+ padding: 0.5em;
+}
+
+div.listingblock > div.content {
+ border: 1px solid #dddddd;
+ border-left: 5px solid #f0f0f0;
+ background: #f8f8f8;
+ padding: 0.5em;
+}
+
+div.quoteblock, div.verseblock {
+ padding-left: 1.0em;
+ margin-left: 1.0em;
+ margin-right: 10%;
+ border-left: 5px solid #f0f0f0;
+ color: #888;
+}
+
+div.quoteblock > div.attribution {
+ padding-top: 0.5em;
+ text-align: right;
+}
+
+div.verseblock > pre.content {
+ font-family: inherit;
+ font-size: inherit;
+}
+div.verseblock > div.attribution {
+ padding-top: 0.75em;
+ text-align: left;
+}
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
+div.verseblock + div.attribution {
+ text-align: left;
+}
+
+div.admonitionblock .icon {
+ vertical-align: top;
+ font-size: 1.1em;
+ font-weight: bold;
+ text-decoration: underline;
+ color: #527bbd;
+ padding-right: 0.5em;
+}
+div.admonitionblock td.content {
+ padding-left: 0.5em;
+ border-left: 3px solid #dddddd;
+}
+
+div.exampleblock > div.content {
+ border-left: 3px solid #dddddd;
+ padding-left: 0.5em;
+}
+
+div.imageblock div.content { padding-left: 0; }
+span.image img { border-style: none; vertical-align: text-bottom; }
+a.image:visited { color: white; }
+
+dl {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+dt {
+ margin-top: 0.5em;
+ margin-bottom: 0;
+ font-style: normal;
+ color: navy;
+}
+dd > *:first-child {
+ margin-top: 0.1em;
+}
+
+ul, ol {
+ list-style-position: outside;
+}
+ol.arabic {
+ list-style-type: decimal;
+}
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+div.compact ul, div.compact ol,
+div.compact p, div.compact p,
+div.compact div, div.compact div {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+tfoot {
+ font-weight: bold;
+}
+td > div.verse {
+ white-space: pre;
+}
+
+div.hdlist {
+ margin-top: 0.8em;
+ margin-bottom: 0.8em;
+}
+div.hdlist tr {
+ padding-bottom: 15px;
+}
+dt.hdlist1.strong, td.hdlist1.strong {
+ font-weight: bold;
+}
+td.hdlist1 {
+ vertical-align: top;
+ font-style: normal;
+ padding-right: 0.8em;
+ color: navy;
+}
+td.hdlist2 {
+ vertical-align: top;
+}
+div.hdlist.compact tr {
+ margin: 0;
+ padding-bottom: 0;
+}
+
+.comment {
+ background: yellow;
+}
+
+.footnote, .footnoteref {
+ font-size: 0.8em;
+}
+
+span.footnote, span.footnoteref {
+ vertical-align: super;
+}
+
+#footnotes {
+ margin: 20px 0 20px 0;
+ padding: 7px 0 0 0;
+}
+
+#footnotes div.footnote {
+ margin: 0 0 5px 0;
+}
+
+#footnotes hr {
+ border: none;
+ border-top: 1px solid silver;
+ height: 1px;
+ text-align: left;
+ margin-left: 0;
+ width: 20%;
+ min-width: 100px;
+}
+
+div.colist td {
+ padding-right: 0.5em;
+ padding-bottom: 0.3em;
+ vertical-align: top;
+}
+div.colist td img {
+ margin-top: 0.3em;
+}
+
+@media print {
+ #footer-badges { display: none; }
+}
+
+#toc {
+ margin-bottom: 2.5em;
+}
+
+#toctitle {
+ color: #527bbd;
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 1.0em;
+ margin-bottom: 0.1em;
+}
+
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+div.toclevel2 {
+ margin-left: 2em;
+ font-size: 0.9em;
+}
+div.toclevel3 {
+ margin-left: 4em;
+ font-size: 0.9em;
+}
+div.toclevel4 {
+ margin-left: 6em;
+ font-size: 0.9em;
+}
+
+span.aqua { color: aqua; }
+span.black { color: black; }
+span.blue { color: blue; }
+span.fuchsia { color: fuchsia; }
+span.gray { color: gray; }
+span.green { color: green; }
+span.lime { color: lime; }
+span.maroon { color: maroon; }
+span.navy { color: navy; }
+span.olive { color: olive; }
+span.purple { color: purple; }
+span.red { color: red; }
+span.silver { color: silver; }
+span.teal { color: teal; }
+span.white { color: white; }
+span.yellow { color: yellow; }
+
+span.aqua-background { background: aqua; }
+span.black-background { background: black; }
+span.blue-background { background: blue; }
+span.fuchsia-background { background: fuchsia; }
+span.gray-background { background: gray; }
+span.green-background { background: green; }
+span.lime-background { background: lime; }
+span.maroon-background { background: maroon; }
+span.navy-background { background: navy; }
+span.olive-background { background: olive; }
+span.purple-background { background: purple; }
+span.red-background { background: red; }
+span.silver-background { background: silver; }
+span.teal-background { background: teal; }
+span.white-background { background: white; }
+span.yellow-background { background: yellow; }
+
+span.big { font-size: 2em; }
+span.small { font-size: 0.6em; }
+
+span.underline { text-decoration: underline; }
+span.overline { text-decoration: overline; }
+span.line-through { text-decoration: line-through; }
+
+div.unbreakable { page-break-inside: avoid; }
+
+
+/*
+ * xhtml11 specific
+ *
+ * */
+
+div.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+div.tableblock > table {
+ border: 3px solid #527bbd;
+}
+thead, p.table.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.table {
+ margin-top: 0;
+}
+/* Because the table frame attribute is overridden by CSS in most browsers. */
+div.tableblock > table[frame="void"] {
+ border-style: none;
+}
+div.tableblock > table[frame="hsides"] {
+ border-left-style: none;
+ border-right-style: none;
+}
+div.tableblock > table[frame="vsides"] {
+ border-top-style: none;
+ border-bottom-style: none;
+}
+
+
+/*
+ * html5 specific
+ *
+ * */
+
+table.tableblock {
+ margin-top: 1.0em;
+ margin-bottom: 1.5em;
+}
+thead, p.tableblock.header {
+ font-weight: bold;
+ color: #527bbd;
+}
+p.tableblock {
+ margin-top: 0;
+}
+table.tableblock {
+ border-width: 3px;
+ border-spacing: 0px;
+ border-style: solid;
+ border-color: #527bbd;
+ border-collapse: collapse;
+}
+th.tableblock, td.tableblock {
+ border-width: 1px;
+ padding: 4px;
+ border-style: solid;
+ border-color: #527bbd;
+}
+
+table.tableblock.frame-topbot {
+ border-left-style: hidden;
+ border-right-style: hidden;
+}
+table.tableblock.frame-sides {
+ border-top-style: hidden;
+ border-bottom-style: hidden;
+}
+table.tableblock.frame-none {
+ border-style: hidden;
+}
+
+th.tableblock.halign-left, td.tableblock.halign-left {
+ text-align: left;
+}
+th.tableblock.halign-center, td.tableblock.halign-center {
+ text-align: center;
+}
+th.tableblock.halign-right, td.tableblock.halign-right {
+ text-align: right;
+}
+
+th.tableblock.valign-top, td.tableblock.valign-top {
+ vertical-align: top;
+}
+th.tableblock.valign-middle, td.tableblock.valign-middle {
+ vertical-align: middle;
+}
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {
+ vertical-align: bottom;
+}
+
+
+/*
+ * manpage specific
+ *
+ * */
+
+body.manpage h1 {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-top: 2px solid silver;
+ border-bottom: 2px solid silver;
+}
+body.manpage h2 {
+ border-style: none;
+}
+body.manpage div.sectionbody {
+ margin-left: 3em;
+}
+
+@media print {
+ body.manpage div#toc { display: none; }
+}
+
+
+</style>
+<script type="text/javascript">
+/*<![CDATA[*/
+var asciidoc = { // Namespace.
+
+/////////////////////////////////////////////////////////////////////
+// Table Of Contents generator
+/////////////////////////////////////////////////////////////////////
+
+/* Author: Mihai Bazon, September 2002
+ * http://students.infoiasi.ro/~mishoo
+ *
+ * Table Of Content generator
+ * Version: 0.4
+ *
+ * Feel free to use this script under the terms of the GNU General Public
+ * License, as long as you do not remove or alter this notice.
+ */
+
+ /* modified by Troy D. Hanson, September 2006. License: GPL */
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
+
+// toclevels = 1..4.
+toc: function (toclevels) {
+
+ function getText(el) {
+ var text = "";
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
+ text += i.data;
+ else if (i.firstChild != null)
+ text += getText(i);
+ }
+ return text;
+ }
+
+ function TocEntry(el, text, toclevel) {
+ this.element = el;
+ this.text = text;
+ this.toclevel = toclevel;
+ }
+
+ function tocEntries(el, toclevels) {
+ var result = new Array;
+ var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
+ // Function that scans the DOM tree for header elements (the DOM2
+ // nodeIterator API would be a better technique but not supported by all
+ // browsers).
+ var iterate = function (el) {
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
+ var mo = re.exec(i.tagName);
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
+ }
+ iterate(i);
+ }
+ }
+ }
+ iterate(el);
+ return result;
+ }
+
+ var toc = document.getElementById("toc");
+ if (!toc) {
+ return;
+ }
+
+ // Delete existing TOC entries in case we're reloading the TOC.
+ var tocEntriesToRemove = [];
+ var i;
+ for (i = 0; i < toc.childNodes.length; i++) {
+ var entry = toc.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div'
+ && entry.getAttribute("class")
+ && entry.getAttribute("class").match(/^toclevel/))
+ tocEntriesToRemove.push(entry);
+ }
+ for (i = 0; i < tocEntriesToRemove.length; i++) {
+ toc.removeChild(tocEntriesToRemove[i]);
+ }
+
+ // Rebuild TOC entries.
+ var entries = tocEntries(document.getElementById("content"), toclevels);
+ for (var i = 0; i < entries.length; ++i) {
+ var entry = entries[i];
+ if (entry.element.id == "")
+ entry.element.id = "_toc_" + i;
+ var a = document.createElement("a");
+ a.href = "#" + entry.element.id;
+ a.appendChild(document.createTextNode(entry.text));
+ var div = document.createElement("div");
+ div.appendChild(a);
+ div.className = "toclevel" + entry.toclevel;
+ toc.appendChild(div);
+ }
+ if (entries.length == 0)
+ toc.parentNode.removeChild(toc);
+},
+
+
+/////////////////////////////////////////////////////////////////////
+// Footnotes generator
+/////////////////////////////////////////////////////////////////////
+
+/* Based on footnote generation code from:
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
+ */
+
+footnotes: function () {
+ // Delete existing footnote entries in case we're reloading the footnodes.
+ var i;
+ var noteholder = document.getElementById("footnotes");
+ if (!noteholder) {
+ return;
+ }
+ var entriesToRemove = [];
+ for (i = 0; i < noteholder.childNodes.length; i++) {
+ var entry = noteholder.childNodes[i];
+ if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
+ entriesToRemove.push(entry);
+ }
+ for (i = 0; i < entriesToRemove.length; i++) {
+ noteholder.removeChild(entriesToRemove[i]);
+ }
+
+ // Rebuild footnote entries.
+ var cont = document.getElementById("content");
+ var spans = cont.getElementsByTagName("span");
+ var refs = {};
+ var n = 0;
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnote") {
+ n++;
+ var note = spans[i].getAttribute("data-note");
+ if (!note) {
+ // Use [\s\S] in place of . so multi-line matches work.
+ // Because JavaScript has no s (dotall) regex flag.
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
+ spans[i].innerHTML =
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ spans[i].setAttribute("data-note", note);
+ }
+ noteholder.innerHTML +=
+ "<div class='footnote' id='_footnote_" + n + "'>" +
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
+ n + "</a>. " + note + "</div>";
+ var id =spans[i].getAttribute("id");
+ if (id != null) refs["#"+id] = n;
+ }
+ }
+ if (n == 0)
+ noteholder.parentNode.removeChild(noteholder);
+ else {
+ // Process footnoterefs.
+ for (i=0; i<spans.length; i++) {
+ if (spans[i].className == "footnoteref") {
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
+ n = refs[href];
+ spans[i].innerHTML =
+ "[<a href='#_footnote_" + n +
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
+ }
+ }
+ }
+},
+
+install: function(toclevels) {
+ var timerId;
+
+ function reinstall() {
+ asciidoc.footnotes();
+ if (toclevels) {
+ asciidoc.toc(toclevels);
+ }
+ }
+
+ function reinstallAndRemoveTimer() {
+ clearInterval(timerId);
+ reinstall();
+ }
+
+ timerId = setInterval(reinstall, 500);
+ if (document.addEventListener)
+ document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
+ else
+ window.onload = reinstallAndRemoveTimer;
+}
+
+}
+asciidoc.install();
+/*]]>*/
+</script>
+</head>
+<body class="manpage">
+<div id="header">
+<h1>
+git-for-each-repo(1) Manual Page
+</h1>
+<h2>NAME</h2>
+<div class="sectionbody">
+<p>git-for-each-repo -
+ Run a Git command on a list of repositories
+</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="verseblock">
+<pre class="content"><em>git for-each-repo</em> --config=&lt;config&gt; [--] &lt;arguments&gt;</pre>
+<div class="attribution">
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Run a Git command on a list of repositories. The arguments after the
+known options or <code>--</code> indicator are used as the arguments for the Git
+subprocess.</p></div>
+<div class="paragraph"><p>THIS COMMAND IS EXPERIMENTAL. THE BEHAVIOR MAY CHANGE.</p></div>
+<div class="paragraph"><p>For example, we could run maintenance on each of a list of repositories
+stored in a <code>maintenance.repo</code> config variable using</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>git for-each-repo --config=maintenance.repo maintenance run</code></pre>
+</div></div>
+<div class="paragraph"><p>This will run <code>git -C &lt;repo&gt; maintenance run</code> for each value <code>&lt;repo&gt;</code>
+in the multi-valued config variable <code>maintenance.repo</code>.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_options">OPTIONS</h2>
+<div class="sectionbody">
+<div class="dlist"><dl>
+<dt class="hdlist1">
+--config=&lt;config&gt;
+</dt>
+<dd>
+<p>
+ Use the given config variable as a multi-valued list storing
+ absolute path names. Iterate on that list of paths to run
+ the given arguments.
+</p>
+<div class="paragraph"><p>These config values are loaded from system, global, and local Git config,
+as available. If <code>git for-each-repo</code> is run in a directory that is not a
+Git repository, then only the system and global config is used.</p></div>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_subprocess_behavior">SUBPROCESS BEHAVIOR</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>If any <code>git -C &lt;repo&gt; &lt;arguments&gt;</code> subprocess returns a non-zero exit code,
+then the <code>git for-each-repo</code> process returns that exit code without running
+more subprocesses.</p></div>
+<div class="paragraph"><p>Each <code>git -C &lt;repo&gt; &lt;arguments&gt;</code> subprocess inherits the standard file
+descriptors <code>stdin</code>, <code>stdout</code>, and <code>stderr</code>.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_git">GIT</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
+</div>
+</div>
+</div>
+<div id="footnotes"><hr /></div>
+<div id="footer">
+<div id="footer-text">
+Last updated
+ 2020-11-18 14:12:24 PST
+</div>
+</div>
+</body>
+</html>
diff --git a/git-for-each-repo.txt b/git-for-each-repo.txt
new file mode 100644
index 000000000..94bd19da2
--- /dev/null
+++ b/git-for-each-repo.txt
@@ -0,0 +1,59 @@
+git-for-each-repo(1)
+====================
+
+NAME
+----
+git-for-each-repo - Run a Git command on a list of repositories
+
+
+SYNOPSIS
+--------
+[verse]
+'git for-each-repo' --config=<config> [--] <arguments>
+
+
+DESCRIPTION
+-----------
+Run a Git command on a list of repositories. The arguments after the
+known options or `--` indicator are used as the arguments for the Git
+subprocess.
+
+THIS COMMAND IS EXPERIMENTAL. THE BEHAVIOR MAY CHANGE.
+
+For example, we could run maintenance on each of a list of repositories
+stored in a `maintenance.repo` config variable using
+
+-------------
+git for-each-repo --config=maintenance.repo maintenance run
+-------------
+
+This will run `git -C <repo> maintenance run` for each value `<repo>`
+in the multi-valued config variable `maintenance.repo`.
+
+
+OPTIONS
+-------
+--config=<config>::
+ Use the given config variable as a multi-valued list storing
+ absolute path names. Iterate on that list of paths to run
+ the given arguments.
++
+These config values are loaded from system, global, and local Git config,
+as available. If `git for-each-repo` is run in a directory that is not a
+Git repository, then only the system and global config is used.
+
+
+SUBPROCESS BEHAVIOR
+-------------------
+
+If any `git -C <repo> <arguments>` subprocess returns a non-zero exit code,
+then the `git for-each-repo` process returns that exit code without running
+more subprocesses.
+
+Each `git -C <repo> <arguments>` subprocess inherits the standard file
+descriptors `stdin`, `stdout`, and `stderr`.
+
+
+GIT
+---
+Part of the linkgit:git[1] suite
diff --git a/git-format-patch.html b/git-format-patch.html
index c38f77e9c..0c244c0a1 100644
--- a/git-format-patch.html
+++ b/git-format-patch.html
@@ -1467,7 +1467,10 @@ matches "<code>fooasdfbar</code>" and "<code>foo/bar/baz/asdf</code>" but not "<
</dt>
<dd>
<p>
- Show whole surrounding functions of changes.
+ Show whole function as context lines for each change.
+ The function names are determined in the same way as
+ <code>git diff</code> works out patch hunk headers (see <em>Defining a
+ custom hunk-header</em> in <a href="gitattributes.html">gitattributes(5)</a>).
</p>
</dd>
<dt class="hdlist1">
diff --git a/git-grep.html b/git-grep.html
index 0667f2487..4940851e8 100644
--- a/git-grep.html
+++ b/git-grep.html
@@ -1230,7 +1230,7 @@ providing this option will cause it to die.</p></div>
<p>
Show the preceding line that contains the function name of
the match, unless the matching line is a function name itself.
- The name is determined in the same way as <em>git diff</em> works out
+ The name is determined in the same way as <code>git diff</code> works out
patch hunk headers (see <em>Defining a custom hunk-header</em> in
<a href="gitattributes.html">gitattributes(5)</a>).
</p>
@@ -1285,7 +1285,9 @@ providing this option will cause it to die.</p></div>
Show the surrounding text from the previous line containing a
function name up to the one before the next function name,
effectively showing the whole function in which the match was
- found.
+ found. The function names are determined in the same way as
+ <code>git diff</code> works out patch hunk headers (see <em>Defining a
+ custom hunk-header</em> in <a href="gitattributes.html">gitattributes(5)</a>).
</p>
</dd>
<dt class="hdlist1">
@@ -1467,7 +1469,7 @@ performance in this case, it might be desirable to use <code>--threads=1</code>.
<div id="footer">
<div id="footer-text">
Last updated
- 2020-10-09 08:47:57 PDT
+ 2020-11-18 14:12:24 PST
</div>
</div>
</body>
diff --git a/git-grep.txt b/git-grep.txt
index 6077ff01a..4e0ba8234 100644
--- a/git-grep.txt
+++ b/git-grep.txt
@@ -241,7 +241,7 @@ providing this option will cause it to die.
--show-function::
Show the preceding line that contains the function name of
the match, unless the matching line is a function name itself.
- The name is determined in the same way as 'git diff' works out
+ The name is determined in the same way as `git diff` works out
patch hunk headers (see 'Defining a custom hunk-header' in
linkgit:gitattributes[5]).
@@ -266,7 +266,9 @@ providing this option will cause it to die.
Show the surrounding text from the previous line containing a
function name up to the one before the next function name,
effectively showing the whole function in which the match was
- found.
+ found. The function names are determined in the same way as
+ `git diff` works out patch hunk headers (see 'Defining a
+ custom hunk-header' in linkgit:gitattributes[5]).
--threads <num>::
Number of grep worker threads to use.
diff --git a/git-log.html b/git-log.html
index d2b48dcc5..995d32694 100644
--- a/git-log.html
+++ b/git-log.html
@@ -892,58 +892,60 @@ produced by <code>--stat</code>, etc.</p></div>
</p>
</dd>
<dt class="hdlist1">
--L &lt;start&gt;,&lt;end&gt;:&lt;file&gt;
+-L&lt;start&gt;,&lt;end&gt;:&lt;file&gt;
</dt>
<dt class="hdlist1">
--L :&lt;funcname&gt;:&lt;file&gt;
+-L:&lt;funcname&gt;:&lt;file&gt;
</dt>
<dd>
<p>
- Trace the evolution of the line range given by "&lt;start&gt;,&lt;end&gt;"
- (or the function name regex &lt;funcname&gt;) within the &lt;file&gt;. You may
+ Trace the evolution of the line range given by <em>&lt;start&gt;,&lt;end&gt;</em>,
+ or by the function name regex <em>&lt;funcname&gt;</em>, within the <em>&lt;file&gt;</em>. You may
not give any pathspec limiters. This is currently limited to
a walk starting from a single revision, i.e., you may only
give zero or one positive revision arguments, and
- &lt;start&gt; and &lt;end&gt; (or &lt;funcname&gt;) must exist in the starting revision.
+ <em>&lt;start&gt;</em> and <em>&lt;end&gt;</em> (or <em>&lt;funcname&gt;</em>) must exist in the starting revision.
You can specify this option more than once. Implies <code>--patch</code>.
Patch output can be suppressed using <code>--no-patch</code>, but other diff formats
(namely <code>--raw</code>, <code>--numstat</code>, <code>--shortstat</code>, <code>--dirstat</code>, <code>--summary</code>,
<code>--name-only</code>, <code>--name-status</code>, <code>--check</code>) are not currently implemented.
</p>
-<div class="paragraph"><p>&lt;start&gt; and &lt;end&gt; can take one of these forms:</p></div>
+<div class="paragraph"><p><em>&lt;start&gt;</em> and <em>&lt;end&gt;</em> can take one of these forms:</p></div>
<div class="ulist"><ul>
<li>
<p>
number
</p>
-<div class="paragraph"><p>If &lt;start&gt; or &lt;end&gt; is a number, it specifies an
+<div class="paragraph"><p>If <em>&lt;start&gt;</em> or <em>&lt;end&gt;</em> is a number, it specifies an
absolute line number (lines count from 1).</p></div>
</li>
<li>
<p>
-/regex/
+<code>/regex/</code>
</p>
<div class="paragraph"><p>This form will use the first line matching the given
-POSIX regex. If &lt;start&gt; is a regex, it will search from the end of
+POSIX regex. If <em>&lt;start&gt;</em> is a regex, it will search from the end of
the previous <code>-L</code> range, if any, otherwise from the start of file.
-If &lt;start&gt; is &#8220;^/regex/&#8221;, it will search from the start of file.
-If &lt;end&gt; is a regex, it will search
-starting at the line given by &lt;start&gt;.</p></div>
+If <em>&lt;start&gt;</em> is <code>^/regex/</code>, it will search from the start of file.
+If <em>&lt;end&gt;</em> is a regex, it will search
+starting at the line given by <em>&lt;start&gt;</em>.</p></div>
</li>
<li>
<p>
+offset or -offset
</p>
-<div class="paragraph"><p>This is only valid for &lt;end&gt; and will specify a number
-of lines before or after the line given by &lt;start&gt;.</p></div>
+<div class="paragraph"><p>This is only valid for <em>&lt;end&gt;</em> and will specify a number
+of lines before or after the line given by <em>&lt;start&gt;</em>.</p></div>
</li>
</ul></div>
-<div class="paragraph"><p>If &#8220;:&lt;funcname&gt;&#8221; is given in place of &lt;start&gt; and &lt;end&gt;, it is a
+<div class="paragraph"><p>If <code>:&lt;funcname&gt;</code> is given in place of <em>&lt;start&gt;</em> and <em>&lt;end&gt;</em>, it is a
regular expression that denotes the range from the first funcname line
-that matches &lt;funcname&gt;, up to the next funcname line. &#8220;:&lt;funcname&gt;&#8221;
+that matches <em>&lt;funcname&gt;</em>, up to the next funcname line. <code>:&lt;funcname&gt;</code>
searches from the end of the previous <code>-L</code> range, if any, otherwise
-from the start of file. &#8220;^:&lt;funcname&gt;&#8221; searches from the start of
-file.</p></div>
+from the start of file. <code>^:&lt;funcname&gt;</code> searches from the start of
+file. The function names are determined in the same way as <code>git diff</code>
+works out patch hunk headers (see <em>Defining a custom hunk-header</em>
+in <a href="gitattributes.html">gitattributes(5)</a>).</p></div>
</dd>
<dt class="hdlist1">
&lt;revision range&gt;
@@ -4538,7 +4540,10 @@ matches "<code>fooasdfbar</code>" and "<code>foo/bar/baz/asdf</code>" but not "<
</dt>
<dd>
<p>
- Show whole surrounding functions of changes.
+ Show whole function as context lines for each change.
+ The function names are determined in the same way as
+ <code>git diff</code> works out patch hunk headers (see <em>Defining a
+ custom hunk-header</em> in <a href="gitattributes.html">gitattributes(5)</a>).
</p>
</dd>
<dt class="hdlist1">
@@ -5175,7 +5180,7 @@ and overridden by the <code>--notes=&lt;ref&gt;</code> option.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-08-17 17:32:33 PDT
+ 2020-11-18 14:12:24 PST
</div>
</div>
</body>
diff --git a/git-log.txt b/git-log.txt
index 2b8ac5ff8..dd189a353 100644
--- a/git-log.txt
+++ b/git-log.txt
@@ -77,20 +77,7 @@ produced by `--stat`, etc.
Intended to speed up tools that read log messages from `git log`
output by allowing them to allocate space in advance.
--L <start>,<end>:<file>::
--L :<funcname>:<file>::
- Trace the evolution of the line range given by "<start>,<end>"
- (or the function name regex <funcname>) within the <file>. You may
- not give any pathspec limiters. This is currently limited to
- a walk starting from a single revision, i.e., you may only
- give zero or one positive revision arguments, and
- <start> and <end> (or <funcname>) must exist in the starting revision.
- You can specify this option more than once. Implies `--patch`.
- Patch output can be suppressed using `--no-patch`, but other diff formats
- (namely `--raw`, `--numstat`, `--shortstat`, `--dirstat`, `--summary`,
- `--name-only`, `--name-status`, `--check`) are not currently implemented.
-+
-include::line-range-format.txt[]
+include::line-range-options.txt[]
<revision range>::
Show only commits in the specified revision range. When no
diff --git a/git-maintenance.html b/git-maintenance.html
index 6e9204cea..8ce958c50 100644
--- a/git-maintenance.html
+++ b/git-maintenance.html
@@ -773,6 +773,57 @@ Git repository.</p></div>
<div class="sectionbody">
<div class="dlist"><dl>
<dt class="hdlist1">
+register
+</dt>
+<dd>
+<p>
+ Initialize Git config values so any scheduled maintenance will
+ start running on this repository. This adds the repository to the
+ <code>maintenance.repo</code> config variable in the current user&#8217;s global
+ config and enables some recommended configuration values for
+ <code>maintenance.&lt;task&gt;.schedule</code>. The tasks that are enabled are safe
+ for running in the background without disrupting foreground
+ processes.
+</p>
+<div class="paragraph"><p>The <code>register</code> subcomand will also set the <code>maintenance.strategy</code> config
+value to <code>incremental</code>, if this value is not previously set. The
+<code>incremental</code> strategy uses the following schedule for each maintenance
+task:</p></div>
+<div class="openblock">
+<div class="content">
+<div class="ulist"><ul>
+<li>
+<p>
+<code>gc</code>: disabled.
+</p>
+</li>
+<li>
+<p>
+<code>commit-graph</code>: hourly.
+</p>
+</li>
+<li>
+<p>
+<code>prefetch</code>: hourly.
+</p>
+</li>
+<li>
+<p>
+<code>loose-objects</code>: daily.
+</p>
+</li>
+<li>
+<p>
+<code>incremental-repack</code>: daily.
+</p>
+</li>
+</ul></div>
+</div></div>
+<div class="paragraph"><p><code>git maintenance register</code> will also disable foreground maintenance by
+setting <code>maintenance.auto = false</code> in the current repository. This config
+setting will remain after a <code>git maintenance unregister</code> command.</p></div>
+</dd>
+<dt class="hdlist1">
run
</dt>
<dd>
@@ -784,6 +835,37 @@ run
is true.
</p>
</dd>
+<dt class="hdlist1">
+start
+</dt>
+<dd>
+<p>
+ Start running maintenance on the current repository. This performs
+ the same config updates as the <code>register</code> subcommand, then updates
+ the background scheduler to run <code>git maintenance run --scheduled</code>
+ on an hourly basis.
+</p>
+</dd>
+<dt class="hdlist1">
+stop
+</dt>
+<dd>
+<p>
+ Halt the background maintenance schedule. The current repository
+ is not removed from the list of maintained repositories, in case
+ the background maintenance is restarted later.
+</p>
+</dd>
+<dt class="hdlist1">
+unregister
+</dt>
+<dd>
+<p>
+ Remove the current repository from background maintenance. This
+ only removes the repository from the configured list. It does not
+ stop the background maintenance processes from running.
+</p>
+</dd>
</dl></div>
</div>
</div>
@@ -895,7 +977,23 @@ incremental-repack
only if certain thresholds are met. For example, the <code>gc</code> task
runs when the number of loose objects exceeds the number stored
in the <code>gc.auto</code> config setting, or when the number of pack-files
- exceeds the <code>gc.autoPackLimit</code> config setting.
+ exceeds the <code>gc.autoPackLimit</code> config setting. Not compatible with
+ the <code>--schedule</code> option.
+</p>
+</dd>
+<dt class="hdlist1">
+--schedule
+</dt>
+<dd>
+<p>
+ When combined with the <code>run</code> subcommand, run maintenance tasks
+ only if certain time conditions are met, as specified by the
+ <code>maintenance.&lt;task&gt;.schedule</code> config value for each <code>&lt;task&gt;</code>.
+ This config value specifies a number of seconds since the last
+ time that task ran, according to the <code>maintenance.&lt;task&gt;.lastRun</code>
+ config value. The tasks that are tested are those provided by
+ the <code>--task=&lt;task&gt;</code> option(s) or those with
+ <code>maintenance.&lt;task&gt;.enabled</code> set to true.
</p>
</dd>
<dt class="hdlist1">
@@ -922,6 +1020,46 @@ incremental-repack
</div>
</div>
<div class="sect1">
+<h2 id="_troubleshooting">TROUBLESHOOTING</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The <code>git maintenance</code> command is designed to simplify the repository
+maintenance patterns while minimizing user wait time during Git commands.
+A variety of configuration options are available to allow customizing this
+process. The default maintenance options focus on operations that complete
+quickly, even on large repositories.</p></div>
+<div class="paragraph"><p>Users may find some cases where scheduled maintenance tasks do not run as
+frequently as intended. Each <code>git maintenance run</code> command takes a lock on
+the repository&#8217;s object database, and this prevents other concurrent
+<code>git maintenance run</code> commands from running on the same repository. Without
+this safeguard, competing processes could leave the repository in an
+unpredictable state.</p></div>
+<div class="paragraph"><p>The background maintenance schedule runs <code>git maintenance run</code> processes
+on an hourly basis. Each run executes the "hourly" tasks. At midnight,
+that process also executes the "daily" tasks. At midnight on the first day
+of the week, that process also executes the "weekly" tasks. A single
+process iterates over each registered repository, performing the scheduled
+tasks for that frequency. Depending on the number of registered
+repositories and their sizes, this process may take longer than an hour.
+In this case, multiple <code>git maintenance run</code> commands may run on the same
+repository at the same time, colliding on the object database lock. This
+results in one of the two tasks not running.</p></div>
+<div class="paragraph"><p>If you find that some maintenance windows are taking longer than one hour
+to complete, then consider reducing the complexity of your maintenance
+tasks. For example, the <code>gc</code> task is much slower than the
+<code>incremental-repack</code> task. However, this comes at a cost of a slightly
+larger object database. Consider moving more expensive tasks to be run
+less frequently.</p></div>
+<div class="paragraph"><p>Expert users may consider scheduling their own maintenance tasks using a
+different schedule than is available through <code>git maintenance start</code> and
+Git configuration options. These users should be aware of the object
+database lock and how concurrent <code>git maintenance run</code> commands behave.
+Further, the <code>git gc</code> command should not be combined with
+<code>git maintenance run</code> commands. <code>git gc</code> modifies the object database
+but does not take the lock in the same way as <code>git maintenance run</code>. If
+possible, use <code>git maintenance run --task=gc</code> instead of <code>git gc</code>.</p></div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_git">GIT</h2>
<div class="sectionbody">
<div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
@@ -932,7 +1070,7 @@ incremental-repack
<div id="footer">
<div id="footer-text">
Last updated
- 2020-10-27 15:58:27 PDT
+ 2020-11-18 14:12:24 PST
</div>
</div>
</body>
diff --git a/git-maintenance.txt b/git-maintenance.txt
index 3f5d8946b..6fec1eb8d 100644
--- a/git-maintenance.txt
+++ b/git-maintenance.txt
@@ -29,6 +29,32 @@ Git repository.
SUBCOMMANDS
-----------
+register::
+ Initialize Git config values so any scheduled maintenance will
+ start running on this repository. This adds the repository to the
+ `maintenance.repo` config variable in the current user's global
+ config and enables some recommended configuration values for
+ `maintenance.<task>.schedule`. The tasks that are enabled are safe
+ for running in the background without disrupting foreground
+ processes.
++
+The `register` subcomand will also set the `maintenance.strategy` config
+value to `incremental`, if this value is not previously set. The
+`incremental` strategy uses the following schedule for each maintenance
+task:
++
+--
+* `gc`: disabled.
+* `commit-graph`: hourly.
+* `prefetch`: hourly.
+* `loose-objects`: daily.
+* `incremental-repack`: daily.
+--
++
+`git maintenance register` will also disable foreground maintenance by
+setting `maintenance.auto = false` in the current repository. This config
+setting will remain after a `git maintenance unregister` command.
+
run::
Run one or more maintenance tasks. If one or more `--task` options
are specified, then those tasks are run in that order. Otherwise,
@@ -36,6 +62,22 @@ run::
config options are true. By default, only `maintenance.gc.enabled`
is true.
+start::
+ Start running maintenance on the current repository. This performs
+ the same config updates as the `register` subcommand, then updates
+ the background scheduler to run `git maintenance run --scheduled`
+ on an hourly basis.
+
+stop::
+ Halt the background maintenance schedule. The current repository
+ is not removed from the list of maintained repositories, in case
+ the background maintenance is restarted later.
+
+unregister::
+ Remove the current repository from background maintenance. This
+ only removes the repository from the configured list. It does not
+ stop the background maintenance processes from running.
+
TASKS
-----
@@ -110,7 +152,18 @@ OPTIONS
only if certain thresholds are met. For example, the `gc` task
runs when the number of loose objects exceeds the number stored
in the `gc.auto` config setting, or when the number of pack-files
- exceeds the `gc.autoPackLimit` config setting.
+ exceeds the `gc.autoPackLimit` config setting. Not compatible with
+ the `--schedule` option.
+
+--schedule::
+ When combined with the `run` subcommand, run maintenance tasks
+ only if certain time conditions are met, as specified by the
+ `maintenance.<task>.schedule` config value for each `<task>`.
+ This config value specifies a number of seconds since the last
+ time that task ran, according to the `maintenance.<task>.lastRun`
+ config value. The tasks that are tested are those provided by
+ the `--task=<task>` option(s) or those with
+ `maintenance.<task>.enabled` set to true.
--quiet::
Do not report progress or other information over `stderr`.
@@ -122,6 +175,50 @@ OPTIONS
`maintenance.<task>.enabled` configured as `true` are considered.
See the 'TASKS' section for the list of accepted `<task>` values.
+
+TROUBLESHOOTING
+---------------
+The `git maintenance` command is designed to simplify the repository
+maintenance patterns while minimizing user wait time during Git commands.
+A variety of configuration options are available to allow customizing this
+process. The default maintenance options focus on operations that complete
+quickly, even on large repositories.
+
+Users may find some cases where scheduled maintenance tasks do not run as
+frequently as intended. Each `git maintenance run` command takes a lock on
+the repository's object database, and this prevents other concurrent
+`git maintenance run` commands from running on the same repository. Without
+this safeguard, competing processes could leave the repository in an
+unpredictable state.
+
+The background maintenance schedule runs `git maintenance run` processes
+on an hourly basis. Each run executes the "hourly" tasks. At midnight,
+that process also executes the "daily" tasks. At midnight on the first day
+of the week, that process also executes the "weekly" tasks. A single
+process iterates over each registered repository, performing the scheduled
+tasks for that frequency. Depending on the number of registered
+repositories and their sizes, this process may take longer than an hour.
+In this case, multiple `git maintenance run` commands may run on the same
+repository at the same time, colliding on the object database lock. This
+results in one of the two tasks not running.
+
+If you find that some maintenance windows are taking longer than one hour
+to complete, then consider reducing the complexity of your maintenance
+tasks. For example, the `gc` task is much slower than the
+`incremental-repack` task. However, this comes at a cost of a slightly
+larger object database. Consider moving more expensive tasks to be run
+less frequently.
+
+Expert users may consider scheduling their own maintenance tasks using a
+different schedule than is available through `git maintenance start` and
+Git configuration options. These users should be aware of the object
+database lock and how concurrent `git maintenance run` commands behave.
+Further, the `git gc` command should not be combined with
+`git maintenance run` commands. `git gc` modifies the object database
+but does not take the lock in the same way as `git maintenance run`. If
+possible, use `git maintenance run --task=gc` instead of `git gc`.
+
+
GIT
---
Part of the linkgit:git[1] suite
diff --git a/git-show.html b/git-show.html
index e383b1ce2..badbc6911 100644
--- a/git-show.html
+++ b/git-show.html
@@ -3004,7 +3004,10 @@ matches "<code>fooasdfbar</code>" and "<code>foo/bar/baz/asdf</code>" but not "<
</dt>
<dd>
<p>
- Show whole surrounding functions of changes.
+ Show whole function as context lines for each change.
+ The function names are determined in the same way as
+ <code>git diff</code> works out patch hunk headers (see <em>Defining a
+ custom hunk-header</em> in <a href="gitattributes.html">gitattributes(5)</a>).
</p>
</dd>
<dt class="hdlist1">
diff --git a/git.html b/git.html
index 6e7a2ef56..cdaf46b18 100644
--- a/git.html
+++ b/git.html
@@ -1972,6 +1972,14 @@ repositories.</p></div>
</p>
</dd>
<dt class="hdlist1">
+<a href="git-for-each-repo.html">git-for-each-repo(1)</a>
+</dt>
+<dd>
+<p>
+ Run a Git command on a list of repositories.
+</p>
+</dd>
+<dt class="hdlist1">
<a href="git-get-tar-commit-id.html">git-get-tar-commit-id(1)</a>
</dt>
<dd>
diff --git a/gitk.html b/gitk.html
index 02189f5ce..8b06f190e 100644
--- a/gitk.html
+++ b/gitk.html
@@ -893,54 +893,53 @@ command-line parser.</p></div>
</dt>
<dd>
<p>
- Trace the evolution of the line range given by "&lt;start&gt;,&lt;end&gt;"
- (or the function name regex &lt;funcname&gt;) within the &lt;file&gt;. You may
+ Trace the evolution of the line range given by <em>&lt;start&gt;,&lt;end&gt;</em>,
+ or by the function name regex <em>&lt;funcname&gt;</em>, within the <em>&lt;file&gt;</em>. You may
not give any pathspec limiters. This is currently limited to
a walk starting from a single revision, i.e., you may only
give zero or one positive revision arguments, and
- &lt;start&gt; and &lt;end&gt; (or &lt;funcname&gt;) must exist in the starting revision.
+ <em>&lt;start&gt;</em> and <em>&lt;end&gt;</em> (or <em>&lt;funcname&gt;</em>) must exist in the starting revision.
You can specify this option more than once. Implies <code>--patch</code>.
Patch output can be suppressed using <code>--no-patch</code>, but other diff formats
(namely <code>--raw</code>, <code>--numstat</code>, <code>--shortstat</code>, <code>--dirstat</code>, <code>--summary</code>,
<code>--name-only</code>, <code>--name-status</code>, <code>--check</code>) are not currently implemented.
</p>
-<div class="paragraph"><p><strong>Note:</strong> gitk (unlike <a href="git-log.html">git-log(1)</a>) currently only understands
-this option if you specify it "glued together" with its argument. Do
-<strong>not</strong> put a space after <code>-L</code>.</p></div>
-<div class="paragraph"><p>&lt;start&gt; and &lt;end&gt; can take one of these forms:</p></div>
+<div class="paragraph"><p><em>&lt;start&gt;</em> and <em>&lt;end&gt;</em> can take one of these forms:</p></div>
<div class="ulist"><ul>
<li>
<p>
number
</p>
-<div class="paragraph"><p>If &lt;start&gt; or &lt;end&gt; is a number, it specifies an
+<div class="paragraph"><p>If <em>&lt;start&gt;</em> or <em>&lt;end&gt;</em> is a number, it specifies an
absolute line number (lines count from 1).</p></div>
</li>
<li>
<p>
-/regex/
+<code>/regex/</code>
</p>
<div class="paragraph"><p>This form will use the first line matching the given
-POSIX regex. If &lt;start&gt; is a regex, it will search from the end of
+POSIX regex. If <em>&lt;start&gt;</em> is a regex, it will search from the end of
the previous <code>-L</code> range, if any, otherwise from the start of file.
-If &lt;start&gt; is &#8220;^/regex/&#8221;, it will search from the start of file.
-If &lt;end&gt; is a regex, it will search
-starting at the line given by &lt;start&gt;.</p></div>
+If <em>&lt;start&gt;</em> is <code>^/regex/</code>, it will search from the start of file.
+If <em>&lt;end&gt;</em> is a regex, it will search
+starting at the line given by <em>&lt;start&gt;</em>.</p></div>
</li>
<li>
<p>
+offset or -offset
</p>
-<div class="paragraph"><p>This is only valid for &lt;end&gt; and will specify a number
-of lines before or after the line given by &lt;start&gt;.</p></div>
+<div class="paragraph"><p>This is only valid for <em>&lt;end&gt;</em> and will specify a number
+of lines before or after the line given by <em>&lt;start&gt;</em>.</p></div>
</li>
</ul></div>
-<div class="paragraph"><p>If &#8220;:&lt;funcname&gt;&#8221; is given in place of &lt;start&gt; and &lt;end&gt;, it is a
+<div class="paragraph"><p>If <code>:&lt;funcname&gt;</code> is given in place of <em>&lt;start&gt;</em> and <em>&lt;end&gt;</em>, it is a
regular expression that denotes the range from the first funcname line
-that matches &lt;funcname&gt;, up to the next funcname line. &#8220;:&lt;funcname&gt;&#8221;
+that matches <em>&lt;funcname&gt;</em>, up to the next funcname line. <code>:&lt;funcname&gt;</code>
searches from the end of the previous <code>-L</code> range, if any, otherwise
-from the start of file. &#8220;^:&lt;funcname&gt;&#8221; searches from the start of
-file.</p></div>
+from the start of file. <code>^:&lt;funcname&gt;</code> searches from the start of
+file. The function names are determined in the same way as <code>git diff</code>
+works out patch hunk headers (see <em>Defining a custom hunk-header</em>
+in <a href="gitattributes.html">gitattributes(5)</a>).</p></div>
</dd>
<dt class="hdlist1">
&lt;revision range&gt;
@@ -1102,7 +1101,7 @@ of end users.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-10 08:03:13 PDT
+ 2020-11-18 14:12:24 PST
</div>
</div>
</body>
diff --git a/gitk.txt b/gitk.txt
index c653ebb6a..d50e9ed10 100644
--- a/gitk.txt
+++ b/gitk.txt
@@ -98,25 +98,7 @@ linkgit:git-rev-list[1] for a complete list.
(See "History simplification" in linkgit:git-log[1] for a more
detailed explanation.)
--L<start>,<end>:<file>::
--L:<funcname>:<file>::
-
- Trace the evolution of the line range given by "<start>,<end>"
- (or the function name regex <funcname>) within the <file>. You may
- not give any pathspec limiters. This is currently limited to
- a walk starting from a single revision, i.e., you may only
- give zero or one positive revision arguments, and
- <start> and <end> (or <funcname>) must exist in the starting revision.
- You can specify this option more than once. Implies `--patch`.
- Patch output can be suppressed using `--no-patch`, but other diff formats
- (namely `--raw`, `--numstat`, `--shortstat`, `--dirstat`, `--summary`,
- `--name-only`, `--name-status`, `--check`) are not currently implemented.
-+
-*Note:* gitk (unlike linkgit:git-log[1]) currently only understands
-this option if you specify it "glued together" with its argument. Do
-*not* put a space after `-L`.
-+
-include::line-range-format.txt[]
+include::line-range-options.txt[]
<revision range>::
diff --git a/howto/keep-canonical-history-correct.html b/howto/keep-canonical-history-correct.html
index c58690c9d..0c4d0c2f8 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-11-11 14:08:45 PST
+ 2020-11-18 14:13:14 PST
</div>
</div>
</body>
diff --git a/howto/maintain-git.html b/howto/maintain-git.html
index 8c1bebda0..42bca7533 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-11-11 14:08:46 PST
+ 2020-11-18 14:13:14 PST
</div>
</div>
</body>
diff --git a/howto/new-command.html b/howto/new-command.html
index b5e17a0c4..87329fa0b 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-11-11 14:08:42 PST
+ 2020-11-18 14:13:11 PST
</div>
</div>
</body>
diff --git a/howto/rebase-from-internal-branch.html b/howto/rebase-from-internal-branch.html
index 405ac0b34..cb81f2acb 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-11-11 14:08:45 PST
+ 2020-11-18 14:13:14 PST
</div>
</div>
</body>
diff --git a/howto/rebuild-from-update-hook.html b/howto/rebuild-from-update-hook.html
index 2507cfea1..87e8eeebe 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-11-11 14:08:45 PST
+ 2020-11-18 14:13:14 PST
</div>
</div>
</body>
diff --git a/howto/recover-corrupted-blob-object.html b/howto/recover-corrupted-blob-object.html
index d14b3ca11..5565b7e18 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-11-11 14:08:45 PST
+ 2020-11-18 14:13:13 PST
</div>
</div>
</body>
diff --git a/howto/recover-corrupted-object-harder.html b/howto/recover-corrupted-object-harder.html
index a6bdbac49..7e22e93e1 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-11-11 14:08:45 PST
+ 2020-11-18 14:13:14 PST
</div>
</div>
</body>
diff --git a/howto/revert-a-faulty-merge.html b/howto/revert-a-faulty-merge.html
index 25fc9906f..7fb0ae544 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-11-11 14:08:44 PST
+ 2020-11-18 14:13:13 PST
</div>
</div>
</body>
diff --git a/howto/revert-branch-rebase.html b/howto/revert-branch-rebase.html
index 5e69e6c9d..6014780b5 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-11-11 14:08:42 PST
+ 2020-11-18 14:13:11 PST
</div>
</div>
</body>
diff --git a/howto/separating-topic-branches.html b/howto/separating-topic-branches.html
index ed8322a1b..bb5e2ad99 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-11-11 14:08:44 PST
+ 2020-11-18 14:13:13 PST
</div>
</div>
</body>
diff --git a/howto/setup-git-server-over-http.html b/howto/setup-git-server-over-http.html
index 74416e12e..12a751f24 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-11-11 14:08:44 PST
+ 2020-11-18 14:13:12 PST
</div>
</div>
</body>
diff --git a/howto/update-hook-example.html b/howto/update-hook-example.html
index e628a9d5b..55f00ff70 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-11-11 14:08:43 PST
+ 2020-11-18 14:13:12 PST
</div>
</div>
</body>
diff --git a/howto/use-git-daemon.html b/howto/use-git-daemon.html
index 18804de41..5262ecaa9 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-11-11 14:08:43 PST
+ 2020-11-18 14:13:12 PST
</div>
</div>
</body>
diff --git a/howto/using-merge-subtree.html b/howto/using-merge-subtree.html
index 35f338220..bab165d5d 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-11-11 14:08:43 PST
+ 2020-11-18 14:13:11 PST
</div>
</div>
</body>
diff --git a/howto/using-signed-tag-in-pull-request.html b/howto/using-signed-tag-in-pull-request.html
index 9e549294c..a290ff156 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-11-11 14:08:43 PST
+ 2020-11-18 14:13:12 PST
</div>
</div>
</body>
diff --git a/line-range-format.txt b/line-range-format.txt
index 829676ff9..9b51e9fb6 100644
--- a/line-range-format.txt
+++ b/line-range-format.txt
@@ -1,30 +1,32 @@
-<start> and <end> can take one of these forms:
+'<start>' and '<end>' can take one of these forms:
- number
+
-If <start> or <end> is a number, it specifies an
+If '<start>' or '<end>' is a number, it specifies an
absolute line number (lines count from 1).
+
-- /regex/
+- `/regex/`
+
This form will use the first line matching the given
-POSIX regex. If <start> is a regex, it will search from the end of
+POSIX regex. If '<start>' is a regex, it will search from the end of
the previous `-L` range, if any, otherwise from the start of file.
-If <start> is ``^/regex/'', it will search from the start of file.
-If <end> is a regex, it will search
-starting at the line given by <start>.
+If '<start>' is `^/regex/`, it will search from the start of file.
+If '<end>' is a regex, it will search
+starting at the line given by '<start>'.
+
- +offset or -offset
+
-This is only valid for <end> and will specify a number
-of lines before or after the line given by <start>.
+This is only valid for '<end>' and will specify a number
+of lines before or after the line given by '<start>'.
+
-If ``:<funcname>'' is given in place of <start> and <end>, it is a
+If `:<funcname>` is given in place of '<start>' and '<end>', it is a
regular expression that denotes the range from the first funcname line
-that matches <funcname>, up to the next funcname line. ``:<funcname>''
+that matches '<funcname>', up to the next funcname line. `:<funcname>`
searches from the end of the previous `-L` range, if any, otherwise
-from the start of file. ``^:<funcname>'' searches from the start of
-file.
+from the start of file. `^:<funcname>` searches from the start of
+file. The function names are determined in the same way as `git diff`
+works out patch hunk headers (see 'Defining a custom hunk-header'
+in linkgit:gitattributes[5]).
diff --git a/line-range-options.txt b/line-range-options.txt
new file mode 100644
index 000000000..8e295a62b
--- /dev/null
+++ b/line-range-options.txt
@@ -0,0 +1,15 @@
+-L<start>,<end>:<file>::
+-L:<funcname>:<file>::
+
+ Trace the evolution of the line range given by '<start>,<end>',
+ or by the function name regex '<funcname>', within the '<file>'. You may
+ not give any pathspec limiters. This is currently limited to
+ a walk starting from a single revision, i.e., you may only
+ give zero or one positive revision arguments, and
+ '<start>' and '<end>' (or '<funcname>') must exist in the starting revision.
+ You can specify this option more than once. Implies `--patch`.
+ Patch output can be suppressed using `--no-patch`, but other diff formats
+ (namely `--raw`, `--numstat`, `--shortstat`, `--dirstat`, `--summary`,
+ `--name-only`, `--name-status`, `--check`) are not currently implemented.
++
+include::line-range-format.txt[]