summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2021-10-14 10:11:58 -0700
committerJunio C Hamano <gitster@pobox.com>2021-10-14 10:11:58 -0700
commit7b1585b6902973456b47ee9acd8a01365e52a4df (patch)
treedb6fefbd5686265cb8e111e44cda82b6bde4df27
parent7c7cb3360bfca12cec5fa485344d786c4252d247 (diff)
downloadgit-htmldocs-7b1585b6902973456b47ee9acd8a01365e52a4df.tar.gz
Autogenerated HTML docs for v2.33.1-637-gf443b
-rw-r--r--RelNotes/2.33.1.txt138
-rw-r--r--RelNotes/2.34.0.txt97
-rw-r--r--diff-format.txt2
-rw-r--r--git-add.html16
-rw-r--r--git-add.txt9
-rw-r--r--git-checkout.html7
-rw-r--r--git-checkout.txt5
-rw-r--r--git-diff-files.html2
-rw-r--r--git-diff-index.html2
-rw-r--r--git-diff-tree.html2
-rw-r--r--git-diff.html2
-rw-r--r--git-help.html11
-rw-r--r--git-help.txt9
-rw-r--r--git-read-tree.html30
-rw-r--r--git-read-tree.txt23
-rw-r--r--git-reset.html5
-rw-r--r--git-reset.txt3
-rw-r--r--git-rm.html13
-rw-r--r--git-rm.txt6
-rw-r--r--git-send-pack.html6
-rw-r--r--git-send-pack.txt4
-rw-r--r--git-status.html29
-rw-r--r--git-status.txt23
-rw-r--r--howto/coordinate-embargoed-releases.html2
-rw-r--r--howto/keep-canonical-history-correct.html2
-rw-r--r--howto/maintain-git.html2
-rw-r--r--howto/new-command.html2
-rw-r--r--howto/rebase-from-internal-branch.html2
-rw-r--r--howto/rebuild-from-update-hook.html2
-rw-r--r--howto/recover-corrupted-blob-object.html2
-rw-r--r--howto/recover-corrupted-object-harder.html2
-rw-r--r--howto/revert-a-faulty-merge.html2
-rw-r--r--howto/revert-branch-rebase.html2
-rw-r--r--howto/separating-topic-branches.html2
-rw-r--r--howto/setup-git-server-over-http.html2
-rw-r--r--howto/update-hook-example.html2
-rw-r--r--howto/use-git-daemon.html2
-rw-r--r--howto/using-merge-subtree.html2
-rw-r--r--howto/using-signed-tag-in-pull-request.html2
-rw-r--r--technical/api-trace2.html43
-rw-r--r--technical/api-trace2.txt40
41 files changed, 371 insertions, 188 deletions
diff --git a/RelNotes/2.33.1.txt b/RelNotes/2.33.1.txt
new file mode 100644
index 000000000..b71738e65
--- /dev/null
+++ b/RelNotes/2.33.1.txt
@@ -0,0 +1,138 @@
+Git 2.33.1 Release Notes
+========================
+
+This primarily is to backport various fixes accumulated during the
+development towards Git 2.34, the next feature release.
+
+
+Fixes since v2.33
+-----------------
+
+ * The unicode character width table (used for output alignment) has
+ been updated.
+
+ * Input validation of "git pack-objects --stdin-packs" has been
+ corrected.
+
+ * Bugfix for common ancestor negotiation recently introduced in "git
+ push" codepath.
+
+ * "git pull" had various corner cases that were not well thought out
+ around its --rebase backend, e.g. "git pull --ff-only" did not stop
+ but went ahead and rebased when the history on other side is not a
+ descendant of our history. The series tries to fix them up.
+
+ * "git apply" miscounted the bytes and failed to read to the end of
+ binary hunks.
+
+ * "git range-diff" code clean-up.
+
+ * "git commit --fixup" now works with "--edit" again, after it was
+ broken in v2.32.
+
+ * Use upload-artifacts v1 (instead of v2) for 32-bit linux, as the
+ new version has a blocker bug for that architecture.
+
+ * Checking out all the paths from HEAD during the last conflicted
+ step in "git rebase" and continuing would cause the step to be
+ skipped (which is expected), but leaves MERGE_MSG file behind in
+ $GIT_DIR and confuses the next "git commit", which has been
+ corrected.
+
+ * Various bugs in "git rebase -r" have been fixed.
+
+ * mmap() imitation used to call xmalloc() that dies upon malloc()
+ failure, which has been corrected to just return an error to the
+ caller to be handled.
+
+ * "git diff --relative" segfaulted and/or produced incorrect result
+ when there are unmerged paths.
+
+ * The delayed checkout code path in "git checkout" etc. were chatty
+ even when --quiet and/or --no-progress options were given.
+
+ * "git branch -D <branch>" used to refuse to remove a broken branch
+ ref that points at a missing commit, which has been corrected.
+
+ * Build update for Apple clang.
+
+ * The parser for the "--nl" option of "git column" has been
+ corrected.
+
+ * "git upload-pack" which runs on the other side of "git fetch"
+ forgot to take the ref namespaces into account when handling
+ want-ref requests.
+
+ * The sparse-index support can corrupt the index structure by storing
+ a stale and/or uninitialized data, which has been corrected.
+
+ * Buggy tests could damage repositories outside the throw-away test
+ area we created. We now by default export GIT_CEILING_DIRECTORIES
+ to limit the damage from such a stray test.
+
+ * Even when running "git send-email" without its own threaded
+ discussion support, a threading related header in one message is
+ carried over to the subsequent message to result in an unwanted
+ threading, which has been corrected.
+
+ * The output from "git fast-export", when its anonymization feature
+ is in use, showed an annotated tag incorrectly.
+
+ * Recent "diff -m" changes broke "gitk", which has been corrected.
+
+ * "git maintenance" scheduler fix for macOS.
+
+ * A pathname in an advice message has been made cut-and-paste ready.
+
+ * The "git apply -3" code path learned not to bother the lower level
+ merge machinery when the three-way merge can be trivially resolved
+ without the content level merge.
+
+ * The code that optionally creates the *.rev reverse index file has
+ been optimized to avoid needless computation when it is not writing
+ the file out.
+
+ * "git range-diff -I... <range> <range>" segfaulted, which has been
+ corrected.
+
+ * The order in which various files that make up a single (conceptual)
+ packfile has been reevaluated and straightened up. This matters in
+ correctness, as an incomplete set of files must not be shown to a
+ running Git.
+
+ * The "mode" word is useless in a call to open(2) that does not
+ create a new file. Such a call in the files backend of the ref
+ subsystem has been cleaned up.
+
+ * "git update-ref --stdin" failed to flush its output as needed,
+ which potentially led the conversation to a deadlock.
+
+ * When "git am --abort" fails to abort correctly, it still exited
+ with exit status of 0, which has been corrected.
+
+ * Correct nr and alloc members of strvec struct to be of type size_t.
+
+ * "git stash", where the tentative change involves changing a
+ directory to a file (or vice versa), was confused, which has been
+ corrected.
+
+ * "git clone" from a repository whose HEAD is unborn into a bare
+ repository didn't follow the branch name the other side used, which
+ is corrected.
+
+ * "git cvsserver" had a long-standing bug in its authentication code,
+ which has finally been corrected (it is unclear and is a separate
+ question if anybody is seriously using it, though).
+
+ * "git difftool --dir-diff" mishandled symbolic links.
+
+ * Sensitive data in the HTTP trace were supposed to be redacted, but
+ we failed to do so in HTTP/2 requests.
+
+ * "make clean" has been updated to remove leftover .depend/
+ directories, even when it is not told to use them to compute header
+ dependencies.
+
+ * Protocol v0 clients can get stuck parsing a malformed feature line.
+
+Also contains various documentation updates and code clean-ups.
diff --git a/RelNotes/2.34.0.txt b/RelNotes/2.34.0.txt
index 6c9c5301f..0bfeaea54 100644
--- a/RelNotes/2.34.0.txt
+++ b/RelNotes/2.34.0.txt
@@ -62,6 +62,10 @@ UI, Workflows & Features
* The ref iteration code used to optionally allow dangling refs to be
shown, which has been tightened up.
+ * "git add", "git mv", and "git rm" have been adjusted to avoid
+ updating paths outside of the sparse-checkout definition unless
+ the user specifies a "--sparse" option.
+
Performance, Internal Implementation, Development Support etc.
@@ -146,211 +150,154 @@ Performance, Internal Implementation, Development Support etc.
* CI learns to run the leak sanitizer builds.
+ * "git grep --recurse-submodules" takes trees and blobs from the
+ submodule repository, but the textconv settings when processing a
+ blob from the submodule is not taken from the submodule repository.
+ A test is added to demonstrate the issue, without fixing it.
+
+ * Teach "git help -c" into helping the command line completion of
+ configuration variables.
+
+ * When "git cmd -h" shows more than one line of usage text (e.g.
+ the cmd subcommand may take sub-sub-command), parse-options API
+ learned to align these lines, even across i18n/l10n.
+
+ * Prevent "make sparse" from running for the source files that
+ haven't been modified.
+
Fixes since v2.33
-----------------
* Input validation of "git pack-objects --stdin-packs" has been
corrected.
- (merge 561fa03529 ab/pack-stdin-packs-fix later to maint).
* Bugfix for common ancestor negotiation recently introduced in "git
push" code path.
- (merge 82823118b9 jt/push-negotiation-fixes later to maint).
* "git pull" had various corner cases that were not well thought out
around its --rebase backend, e.g. "git pull --ff-only" did not stop
but went ahead and rebased when the history on other side is not a
descendant of our history. The series tries to fix them up.
- (merge 6f843a3355 en/pull-conflicting-options later to maint).
* "git apply" miscounted the bytes and failed to read to the end of
binary hunks.
- (merge 46d723ce57 jk/apply-binary-hunk-parsing-fix later to maint).
* "git range-diff" code clean-up.
- (merge c4d5907324 jk/range-diff-fixes later to maint).
* "git commit --fixup" now works with "--edit" again, after it was
broken in v2.32.
- (merge 8ef6aad664 jk/commit-edit-fixup-fix later to maint).
* Use upload-artifacts v1 (instead of v2) for 32-bit linux, as the
new version has a blocker bug for that architecture.
- (merge 3cf9bb36bf cb/ci-use-upload-artifacts-v1 later to maint).
* Checking out all the paths from HEAD during the last conflicted
step in "git rebase" and continuing would cause the step to be
skipped (which is expected), but leaves MERGE_MSG file behind in
$GIT_DIR and confuses the next "git commit", which has been
corrected.
- (merge e5ee33e855 pw/rebase-skip-final-fix later to maint).
* Various bugs in "git rebase -r" have been fixed.
- (merge f2563c9ef3 pw/rebase-r-fixes later to maint).
* mmap() imitation used to call xmalloc() that dies upon malloc()
failure, which has been corrected to just return an error to the
caller to be handled.
- (merge 95b4ff3931 rs/git-mmap-uses-malloc later to maint).
* "git diff --relative" segfaulted and/or produced incorrect result
when there are unmerged paths.
- (merge 8174627b3d dd/diff-files-unmerged-fix later to maint).
* The delayed checkout code path in "git checkout" etc. were chatty
even when --quiet and/or --no-progress options were given.
- (merge 7a132c628e mt/quiet-with-delayed-checkout later to maint).
* "git branch -D <branch>" used to refuse to remove a broken branch
ref that points at a missing commit, which has been corrected.
- (merge 597a977489 rs/branch-allow-deleting-dangling later to maint).
* Build update for Apple clang.
- (merge f32c5d3716 cb/makefile-apple-clang later to maint).
* The parser for the "--nl" option of "git column" has been
corrected.
- (merge c93ca46cf5 sg/column-nl later to maint).
* "git upload-pack" which runs on the other side of "git fetch"
forgot to take the ref namespaces into account when handling
want-ref requests.
- (merge 53a66ec37c ka/want-ref-in-namespace later to maint).
* The sparse-index support can corrupt the index structure by storing
a stale and/or uninitialized data, which has been corrected.
- (merge d9e9b44d7a jh/sparse-index-resize-fix later to maint).
* Buggy tests could damage repositories outside the throw-away test
area we created. We now by default export GIT_CEILING_DIRECTORIES
to limit the damage from such a stray test.
- (merge 614c3d8f2e sg/set-ceiling-during-tests later to maint).
* Even when running "git send-email" without its own threaded
discussion support, a threading related header in one message is
carried over to the subsequent message to result in an unwanted
threading, which has been corrected.
- (merge e082113484 mh/send-email-reset-in-reply-to later to maint).
* The output from "git fast-export", when its anonymization feature
is in use, showed an annotated tag incorrectly.
- (merge 2f040a9671 tk/fast-export-anonymized-tag-fix later to maint).
* Doc update plus improved error reporting.
- (merge 1e93770888 jk/log-warn-on-bogus-encoding later to maint).
* Recent "diff -m" changes broke "gitk", which has been corrected.
- (merge 5acffd3473 so/diff-index-regression-fix later to maint).
* Regression fix.
- (merge b996f84989 ab/send-email-config-fix later to maint).
* The "git apply -3" code path learned not to bother the lower level
merge machinery when the three-way merge can be trivially resolved
without the content level merge. This fixes a regression caused by
recent "-3way first and fall back to direct application" change.
- (merge 57f183b698 jc/trivial-threeway-binary-merge later to maint).
* The code that optionally creates the *.rev reverse index file has
been optimized to avoid needless computation when it is not writing
the file out.
- (merge 8fe8bae9d2 ab/reverse-midx-optim later to maint).
* "git range-diff -I... <range> <range>" segfaulted, which has been
corrected.
- (merge 709b3f32d3 rs/range-diff-avoid-segfault-with-I later to maint).
* The order in which various files that make up a single (conceptual)
packfile has been reevaluated and straightened up. This matters in
correctness, as an incomplete set of files must not be shown to a
running Git.
- (merge 4bc1fd6e39 tb/pack-finalize-ordering later to maint).
* The "mode" word is useless in a call to open(2) that does not
create a new file. Such a call in the files backend of the ref
subsystem has been cleaned up.
- (merge 35cf94eaf6 rs/no-mode-to-open-when-appending later to maint).
* "git update-ref --stdin" failed to flush its output as needed,
which potentially led the conversation to a deadlock.
- (merge 7c1200745b ps/update-ref-batch-flush later to maint).
* When "git am --abort" fails to abort correctly, it still exited
with exit status of 0, which has been corrected.
- (merge c5ead19ea2 en/am-abort-fix later to maint).
* Correct nr and alloc members of strvec struct to be of type size_t.
- (merge 8d133a4653 jk/strvec-typefix later to maint).
* "git stash", where the tentative change involves changing a
directory to a file (or vice versa), was confused, which has been
corrected.
- (merge bee8691f19 en/stash-df-fix later to maint).
* "git clone" from a repository whose HEAD is unborn into a bare
repository didn't follow the branch name the other side used, which
is corrected.
- (merge 6b58df54cf jk/clone-unborn-head-in-bare later to maint).
* "git cvsserver" had a long-standing bug in its authentication code,
which has finally been corrected (it is unclear and is a separate
question if anybody is seriously using it, though).
- (merge 4b81f690f6 cb/cvsserver later to maint).
* "git difftool --dir-diff" mishandled symbolic links.
- (merge 5bafb3576a da/difftool-dir-diff-symlink-fix later to maint).
* Sensitive data in the HTTP trace were supposed to be redacted, but
we failed to do so in HTTP/2 requests.
- (merge b66c77a64e jk/http-redact-fix later to maint).
* "make clean" has been updated to remove leftover .depend/
directories, even when it is not told to use them to compute header
dependencies.
- (merge f0a74bcb03 ab/make-clean-depend-dirs later to maint).
* Protocol v0 clients can get stuck parsing a malformed feature line.
- (merge 44d2aec6e8 ah/connect-parse-feature-v0-fix later to maint).
+
+ * A few kinds of changes "git status" can show were not documented.
+ (merge d2a534c515 ja/doc-status-types-and-copies later to maint).
* Other code cleanup, docfix, build fix, etc.
- (merge 1d9c8daef8 ab/bundle-doc later to maint).
- (merge 81483fe613 en/merge-strategy-docs later to maint).
- (merge 626beebdf8 js/log-protocol-version later to maint).
- (merge 00e302da76 cb/builtin-merge-format-string-fix later to maint).
- (merge ad51ae4dc0 cb/ci-freebsd-update later to maint).
- (merge be6444d1ca fc/completion-updates later to maint).
- (merge ff7b83f562 ti/tcsh-completion-regression-fix later to maint).
- (merge 325b06deda sg/make-fix-ar-invocation later to maint).
- (merge bd72824c60 me/t5582-cleanup later to maint).
- (merge f6a5af0f62 ga/send-email-sendmail-cmd later to maint).
- (merge f58c7468cd ab/ls-remote-packet-trace later to maint).
- (merge 0160f7e725 ab/rebase-fatal-fatal-fix later to maint).
- (merge a16eb6b1ff js/maintenance-launchctl-fix later to maint).
- (merge c21b2511c2 jk/t5323-no-pack-test-fix later to maint).
- (merge 5146c2f148 mh/credential-leakfix later to maint).
- (merge 1549577338 dd/t6300-wo-gpg-fix later to maint).
- (merge 66e905b7dd rs/xopen-reports-open-failures later to maint).
- (merge 469888e6a5 es/walken-tutorial-fix later to maint).
- (merge 88682b016d ba/object-info later to maint).
- (merge b45c172e51 ab/gc-log-rephrase later to maint).
- (merge ccdd5d1eb1 ab/mailmap-leakfix later to maint).
- (merge 6540b71614 cb/remote-ndebug-fix later to maint).
- (merge e4f8d27585 rs/show-branch-simplify later to maint).
- (merge e124ecf7f7 rs/archive-use-object-id later to maint).
- (merge cebead1ebf cb/ci-build-pedantic later to maint).
- (merge ca0cc98e03 bs/doc-bugreport-outdir later to maint).
- (merge 72b113e562 ab/no-more-check-bindir later to maint).
- (merge 92a5d1c9b4 jc/prefix-filename-allocates later to maint).
- (merge d9a65b6c0a rs/setup-use-xopen-and-xdup later to maint).
- (merge e8f55568de jk/t5562-racefix later to maint).
- (merge 8f0f110156 rs/drop-core-compression-vars later to maint).
- (merge b6d8887d3d ma/doc-git-version later to maint).
- (merge 66c0c44df6 cb/plug-leaks-in-alloca-emu-users later to maint).
- (merge afb32e8101 kz/revindex-comment-fix later to maint).
- (merge ae578de926 po/git-config-doc-mentions-help-c later to maint).
- (merge 187fc8b8b6 cb/unicode-14 later to maint).
- (merge 3584cff71c en/typofixes later to maint).
(merge f188160be9 ab/bundle-remove-verbose-option later to maint).
(merge 8c6b4332b4 rs/close-pack-leakfix later to maint).
(merge 51b04c05b7 bs/difftool-msg-tweak later to maint).
diff --git a/diff-format.txt b/diff-format.txt
index fbbd410a8..7a9c3b6ff 100644
--- a/diff-format.txt
+++ b/diff-format.txt
@@ -59,7 +59,7 @@ Possible status letters are:
- D: deletion of a file
- M: modification of the contents or mode of a file
- R: renaming of a file
-- T: change in the type of the file
+- T: change in the type of the file (regular file, symbolic link or submodule)
- U: file is unmerged (you must complete the merge before it can
be committed)
- X: "unknown" change type (most probably a bug, please report it)
diff --git a/git-add.html b/git-add.html
index 6665c93b4..665633507 100644
--- a/git-add.html
+++ b/git-add.html
@@ -750,7 +750,7 @@ git-add(1) Manual Page
<div class="sectionbody">
<div class="verseblock">
<pre class="content"><em>git add</em> [--verbose | -v] [--dry-run | -n] [--force | -f] [--interactive | -i] [--patch | -p]
- [--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]]
+ [--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]] [--sparse]
[--intent-to-add | -N] [--refresh] [--ignore-errors] [--ignore-missing] [--renormalize]
[--chmod=(+|-)x] [--pathspec-from-file=&lt;file&gt; [--pathspec-file-nul]]
[--] [&lt;pathspec&gt;&#8230;]</pre>
@@ -847,6 +847,18 @@ in <a href="gitglossary.html">gitglossary(7)</a>.</p></div>
</p>
</dd>
<dt class="hdlist1">
+--sparse
+</dt>
+<dd>
+<p>
+ Allow updating index entries outside of the sparse-checkout cone.
+ Normally, <code>git add</code> refuses to update index entries whose paths do
+ not fit within the sparse-checkout cone, since those files might
+ be removed from the working tree without warning. See
+ <a href="git-sparse-checkout.html">git-sparse-checkout(1)</a> for more details.
+</p>
+</dd>
+<dt class="hdlist1">
-i
</dt>
<dt class="hdlist1">
@@ -1375,7 +1387,7 @@ modifying the contents of context or removal lines
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-10 15:02:33 PDT
+ 2021-10-14 10:10:01 PDT
</div>
</div>
</body>
diff --git a/git-add.txt b/git-add.txt
index be5e3ac54..11eb70f16 100644
--- a/git-add.txt
+++ b/git-add.txt
@@ -9,7 +9,7 @@ SYNOPSIS
--------
[verse]
'git add' [--verbose | -v] [--dry-run | -n] [--force | -f] [--interactive | -i] [--patch | -p]
- [--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]]
+ [--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]] [--sparse]
[--intent-to-add | -N] [--refresh] [--ignore-errors] [--ignore-missing] [--renormalize]
[--chmod=(+|-)x] [--pathspec-from-file=<file> [--pathspec-file-nul]]
[--] [<pathspec>...]
@@ -79,6 +79,13 @@ in linkgit:gitglossary[7].
--force::
Allow adding otherwise ignored files.
+--sparse::
+ Allow updating index entries outside of the sparse-checkout cone.
+ Normally, `git add` refuses to update index entries whose paths do
+ not fit within the sparse-checkout cone, since those files might
+ be removed from the working tree without warning. See
+ linkgit:git-sparse-checkout[1] for more details.
+
-i::
--interactive::
Add modified contents in the working tree interactively to
diff --git a/git-checkout.html b/git-checkout.html
index 308818576..db285b12d 100644
--- a/git-checkout.html
+++ b/git-checkout.html
@@ -907,8 +907,9 @@ file can be discarded to re-create the original conflicted merge result.</p></di
<dd>
<p>
When switching branches, proceed even if the index or the
- working tree differs from <code>HEAD</code>. This is used to throw away
- local changes.
+ working tree differs from <code>HEAD</code>, and even if there are untracked
+ files in the way. This is used to throw away local changes and
+ any untracked files or directories that are in the way.
</p>
<div class="paragraph"><p>When checking out paths from the index, do not fail upon unmerged
entries; instead, unmerged entries are ignored.</p></div>
@@ -1560,7 +1561,7 @@ $ git add frotz</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-11-01 22:43:13 PST
+ 2021-10-14 10:10:01 PDT
</div>
</div>
</body>
diff --git a/git-checkout.txt b/git-checkout.txt
index b1a6fe449..d473c9bf3 100644
--- a/git-checkout.txt
+++ b/git-checkout.txt
@@ -118,8 +118,9 @@ OPTIONS
-f::
--force::
When switching branches, proceed even if the index or the
- working tree differs from `HEAD`. This is used to throw away
- local changes.
+ working tree differs from `HEAD`, and even if there are untracked
+ files in the way. This is used to throw away local changes and
+ any untracked files or directories that are in the way.
+
When checking out paths from the index, do not fail upon unmerged
entries; instead, unmerged entries are ignored.
diff --git a/git-diff-files.html b/git-diff-files.html
index cba524a76..b9e9c587c 100644
--- a/git-diff-files.html
+++ b/git-diff-files.html
@@ -2251,7 +2251,7 @@ R: renaming of a file
</li>
<li>
<p>
-T: change in the type of the file
+T: change in the type of the file (regular file, symbolic link or submodule)
</p>
</li>
<li>
diff --git a/git-diff-index.html b/git-diff-index.html
index b52f78c43..79fde9115 100644
--- a/git-diff-index.html
+++ b/git-diff-index.html
@@ -2245,7 +2245,7 @@ R: renaming of a file
</li>
<li>
<p>
-T: change in the type of the file
+T: change in the type of the file (regular file, symbolic link or submodule)
</p>
</li>
<li>
diff --git a/git-diff-tree.html b/git-diff-tree.html
index 33f7e6f7a..f75c4fa5c 100644
--- a/git-diff-tree.html
+++ b/git-diff-tree.html
@@ -3508,7 +3508,7 @@ R: renaming of a file
</li>
<li>
<p>
-T: change in the type of the file
+T: change in the type of the file (regular file, symbolic link or submodule)
</p>
</li>
<li>
diff --git a/git-diff.html b/git-diff.html
index 58c76c68d..116f27900 100644
--- a/git-diff.html
+++ b/git-diff.html
@@ -2383,7 +2383,7 @@ R: renaming of a file
</li>
<li>
<p>
-T: change in the type of the file
+T: change in the type of the file (regular file, symbolic link or submodule)
</p>
</li>
<li>
diff --git a/git-help.html b/git-help.html
index ea4395839..6e518e0e6 100644
--- a/git-help.html
+++ b/git-help.html
@@ -749,8 +749,10 @@ git-help(1) Manual Page
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="verseblock">
-<pre class="content"><em>git help</em> [-a|--all [--[no-]verbose]] [-g|--guides]
- [-i|--info|-m|--man|-w|--web] [COMMAND|GUIDE]</pre>
+<pre class="content"><em>git help</em> [-a|--all [--[no-]verbose]]
+ [[-i|--info] [-m|--man] [-w|--web]] [COMMAND|GUIDE]
+<em>git help</em> [-g|--guides]
+<em>git help</em> [-c|--config]</pre>
<div class="attribution">
</div></div>
</div>
@@ -823,8 +825,7 @@ former is internally converted into the latter.</p></div>
</dt>
<dd>
<p>
- Prints a list of the Git concept guides on the standard output. This
- option overrides any given command or guide name.
+ Prints a list of the Git concept guides on the standard output.
</p>
</dd>
<dt class="hdlist1">
@@ -1011,7 +1012,7 @@ See <a href="git-config.html">git-config(1)</a> for more information about this.
<div id="footer">
<div id="footer-text">
Last updated
- 2020-08-10 16:45:05 PDT
+ 2021-10-14 10:10:01 PDT
</div>
</div>
</body>
diff --git a/git-help.txt b/git-help.txt
index 44fe8860b..96d5f598b 100644
--- a/git-help.txt
+++ b/git-help.txt
@@ -8,8 +8,10 @@ git-help - Display help information about Git
SYNOPSIS
--------
[verse]
-'git help' [-a|--all [--[no-]verbose]] [-g|--guides]
- [-i|--info|-m|--man|-w|--web] [COMMAND|GUIDE]
+'git help' [-a|--all [--[no-]verbose]]
+ [[-i|--info] [-m|--man] [-w|--web]] [COMMAND|GUIDE]
+'git help' [-g|--guides]
+'git help' [-c|--config]
DESCRIPTION
-----------
@@ -58,8 +60,7 @@ OPTIONS
-g::
--guides::
- Prints a list of the Git concept guides on the standard output. This
- option overrides any given command or guide name.
+ Prints a list of the Git concept guides on the standard output.
-i::
--info::
diff --git a/git-read-tree.html b/git-read-tree.html
index 993c2cdb1..f0be92e05 100644
--- a/git-read-tree.html
+++ b/git-read-tree.html
@@ -750,8 +750,7 @@ git-read-tree(1) Manual Page
<div class="sectionbody">
<div class="verseblock">
<pre class="content"><em>git read-tree</em> [[-m [--trivial] [--aggressive] | --reset | --prefix=&lt;prefix&gt;]
- [-u [--exclude-per-directory=&lt;gitignore&gt;] | -i]]
- [--index-output=&lt;file&gt;] [--no-sparse-checkout]
+ [-u | -i]] [--index-output=&lt;file&gt;] [--no-sparse-checkout]
(--empty | &lt;tree-ish1&gt; [&lt;tree-ish2&gt; [&lt;tree-ish3&gt;]])</pre>
<div class="attribution">
</div></div>
@@ -792,8 +791,9 @@ will be in unmerged state when <em>git read-tree</em> returns.</p></div>
<dd>
<p>
Same as -m, except that unmerged entries are discarded instead
- of failing. When used with <code>-u</code>, updates leading to loss of
- working tree changes will not abort the operation.
+ of failing. When used with <code>-u</code>, updates leading to loss of
+ working tree changes or untracked files or directories will not
+ abort the operation.
</p>
</dd>
<dt class="hdlist1">
@@ -893,26 +893,6 @@ when both sides add a path identically. The resolution
</p>
</dd>
<dt class="hdlist1">
---exclude-per-directory=&lt;gitignore&gt;
-</dt>
-<dd>
-<p>
- When running the command with <code>-u</code> and <code>-m</code> options, the
- merge result may need to overwrite paths that are not
- tracked in the current branch. The command usually
- refuses to proceed with the merge to avoid losing such a
- path. However this safety valve sometimes gets in the
- way. For example, it often happens that the other
- branch added a file that used to be a generated file in
- your branch, and the safety valve triggers when you try
- to switch to that branch after you ran <code>make</code> but before
- running <code>make clean</code> to remove the generated file. This
- option tells the command to read per-directory exclude
- file (usually <em>.gitignore</em>) and allows such an untracked
- but explicitly ignored file to be overwritten.
-</p>
-</dd>
-<dt class="hdlist1">
--index-output=&lt;file&gt;
</dt>
<dd>
@@ -1306,7 +1286,7 @@ support.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-05-04 16:14:16 PDT
+ 2021-10-14 10:10:01 PDT
</div>
</div>
</body>
diff --git a/git-read-tree.txt b/git-read-tree.txt
index 5fa8bab64..8c3aceb83 100644
--- a/git-read-tree.txt
+++ b/git-read-tree.txt
@@ -10,8 +10,7 @@ SYNOPSIS
--------
[verse]
'git read-tree' [[-m [--trivial] [--aggressive] | --reset | --prefix=<prefix>]
- [-u [--exclude-per-directory=<gitignore>] | -i]]
- [--index-output=<file>] [--no-sparse-checkout]
+ [-u | -i]] [--index-output=<file>] [--no-sparse-checkout]
(--empty | <tree-ish1> [<tree-ish2> [<tree-ish3>]])
@@ -39,8 +38,9 @@ OPTIONS
--reset::
Same as -m, except that unmerged entries are discarded instead
- of failing. When used with `-u`, updates leading to loss of
- working tree changes will not abort the operation.
+ of failing. When used with `-u`, updates leading to loss of
+ working tree changes or untracked files or directories will not
+ abort the operation.
-u::
After a successful merge, update the files in the work
@@ -88,21 +88,6 @@ OPTIONS
The command will refuse to overwrite entries that already
existed in the original index file.
---exclude-per-directory=<gitignore>::
- When running the command with `-u` and `-m` options, the
- merge result may need to overwrite paths that are not
- tracked in the current branch. The command usually
- refuses to proceed with the merge to avoid losing such a
- path. However this safety valve sometimes gets in the
- way. For example, it often happens that the other
- branch added a file that used to be a generated file in
- your branch, and the safety valve triggers when you try
- to switch to that branch after you ran `make` but before
- running `make clean` to remove the generated file. This
- option tells the command to read per-directory exclude
- file (usually '.gitignore') and allows such an untracked
- but explicitly ignored file to be overwritten.
-
--index-output=<file>::
Instead of writing the results out to `$GIT_INDEX_FILE`,
write the resulting index in the named file. While the
diff --git a/git-reset.html b/git-reset.html
index d77706a36..7e6da10d6 100644
--- a/git-reset.html
+++ b/git-reset.html
@@ -842,7 +842,8 @@ section of <a href="git-add.html">git-add(1)</a> to learn how to operate the <co
<dd>
<p>
Resets the index and working tree. Any changes to tracked files in the
- working tree since <code>&lt;commit&gt;</code> are discarded.
+ working tree since <code>&lt;commit&gt;</code> are discarded. Any untracked files or
+ directories in the way of writing any tracked files are simply deleted.
</p>
</dd>
<dt class="hdlist1">
@@ -1499,7 +1500,7 @@ entries:</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-05-04 16:14:16 PDT
+ 2021-10-14 10:10:01 PDT
</div>
</div>
</body>
diff --git a/git-reset.txt b/git-reset.txt
index 252e2d4e4..6f7685f53 100644
--- a/git-reset.txt
+++ b/git-reset.txt
@@ -69,7 +69,8 @@ linkgit:git-add[1]).
--hard::
Resets the index and working tree. Any changes to tracked files in the
- working tree since `<commit>` are discarded.
+ working tree since `<commit>` are discarded. Any untracked files or
+ directories in the way of writing any tracked files are simply deleted.
--merge::
Resets the index and updates the files in the working tree that are
diff --git a/git-rm.html b/git-rm.html
index 2feef9741..1d4e134af 100644
--- a/git-rm.html
+++ b/git-rm.html
@@ -856,6 +856,17 @@ of directory <code>d2</code>.</p></div>
</p>
</dd>
<dt class="hdlist1">
+--sparse
+</dt>
+<dd>
+<p>
+ Allow updating index entries outside of the sparse-checkout cone.
+ Normally, <code>git rm</code> refuses to update index entries whose paths do
+ not fit within the sparse-checkout cone. See
+ <a href="git-sparse-checkout.html">git-sparse-checkout(1)</a> for more.
+</p>
+</dd>
+<dt class="hdlist1">
-q
</dt>
<dt class="hdlist1">
@@ -1022,7 +1033,7 @@ obsolete when recursive submodule update has been implemented.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2021-05-06 21:22:01 PDT
+ 2021-10-14 10:10:01 PDT
</div>
</div>
</body>
diff --git a/git-rm.txt b/git-rm.txt
index 26e9b2847..81bc23f3c 100644
--- a/git-rm.txt
+++ b/git-rm.txt
@@ -72,6 +72,12 @@ For more details, see the 'pathspec' entry in linkgit:gitglossary[7].
--ignore-unmatch::
Exit with a zero status even if no files matched.
+--sparse::
+ Allow updating index entries outside of the sparse-checkout cone.
+ Normally, `git rm` refuses to update index entries whose paths do
+ not fit within the sparse-checkout cone. See
+ linkgit:git-sparse-checkout[1] for more.
+
-q::
--quiet::
`git rm` normally outputs one line (in the form of an `rm` command)
diff --git a/git-send-pack.html b/git-send-pack.html
index 973c92ade..eacc77f0e 100644
--- a/git-send-pack.html
+++ b/git-send-pack.html
@@ -749,10 +749,10 @@ git-send-pack(1) Manual Page
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="verseblock">
-<pre class="content"><em>git send-pack</em> [--all] [--dry-run] [--force] [--receive-pack=&lt;git-receive-pack&gt;]
+<pre class="content"><em>git send-pack</em> [--dry-run] [--force] [--receive-pack=&lt;git-receive-pack&gt;]
[--verbose] [--thin] [--atomic]
[--[no-]signed|--signed=(true|false|if-asked)]
- [&lt;host&gt;:]&lt;directory&gt; [&lt;ref&gt;&#8230;]</pre>
+ [&lt;host&gt;:]&lt;directory&gt; (--all | &lt;ref&gt;&#8230;)</pre>
<div class="attribution">
</div></div>
</div>
@@ -993,7 +993,7 @@ to disable the fast-forward check only on that ref.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2020-03-10 15:02:33 PDT
+ 2021-10-14 10:10:01 PDT
</div>
</div>
</body>
diff --git a/git-send-pack.txt b/git-send-pack.txt
index 44fd146b9..be41f1197 100644
--- a/git-send-pack.txt
+++ b/git-send-pack.txt
@@ -9,10 +9,10 @@ git-send-pack - Push objects over Git protocol to another repository
SYNOPSIS
--------
[verse]
-'git send-pack' [--all] [--dry-run] [--force] [--receive-pack=<git-receive-pack>]
+'git send-pack' [--dry-run] [--force] [--receive-pack=<git-receive-pack>]
[--verbose] [--thin] [--atomic]
[--[no-]signed|--signed=(true|false|if-asked)]
- [<host>:]<directory> [<ref>...]
+ [<host>:]<directory> (--all | <ref>...)
DESCRIPTION
-----------
diff --git a/git-status.html b/git-status.html
index af7027460..ab52fc4bd 100644
--- a/git-status.html
+++ b/git-status.html
@@ -1083,6 +1083,11 @@ show tracked paths:</p></div>
</li>
<li>
<p>
+<em>T</em> = file type changed (regular file, symbolic link or submodule)
+</p>
+</li>
+<li>
+<p>
<em>A</em> = added
</p>
</li>
@@ -1098,7 +1103,7 @@ show tracked paths:</p></div>
</li>
<li>
<p>
-<em>C</em> = copied
+<em>C</em> = copied (if config option status.renames is set to "copies")
</p>
</li>
<li>
@@ -1112,16 +1117,18 @@ show tracked paths:</p></div>
<pre><code>X Y Meaning
-------------------------------------------------
[AMD] not updated
-M [ MD] updated in index
-A [ MD] added to index
+M [ MTD] updated in index
+T [ MTD] type changed in index
+A [ MTD] added to index
D deleted from index
-R [ MD] renamed in index
-C [ MD] copied in index
-[MARC] index and work tree matches
-[ MARC] M work tree changed since index
-[ MARC] D deleted in work tree
-[ D] R renamed in work tree
-[ D] C copied in work tree
+R [ MTD] renamed in index
+C [ MTD] copied in index
+[MTARC] index and work tree matches
+[ MTARC] M work tree changed since index
+[ MTARC] T type changed in work tree since index
+[ MTARC] D deleted in work tree
+ R renamed in work tree
+ C copied in work tree
-------------------------------------------------
D D unmerged, both deleted
A U unmerged, added by us
@@ -1361,7 +1368,7 @@ using <code>git --no-optional-locks status</code> (see <a href="git.html">git(1)
<div id="footer">
<div id="footer-text">
Last updated
- 2021-10-06 14:16:38 PDT
+ 2021-10-14 10:10:01 PDT
</div>
</div>
</body>
diff --git a/git-status.txt b/git-status.txt
index c33a3d8d5..4a2c3e040 100644
--- a/git-status.txt
+++ b/git-status.txt
@@ -207,26 +207,29 @@ show tracked paths:
* ' ' = unmodified
* 'M' = modified
+* 'T' = file type changed (regular file, symbolic link or submodule)
* 'A' = added
* 'D' = deleted
* 'R' = renamed
-* 'C' = copied
+* 'C' = copied (if config option status.renames is set to "copies")
* 'U' = updated but unmerged
....
X Y Meaning
-------------------------------------------------
[AMD] not updated
-M [ MD] updated in index
-A [ MD] added to index
+M [ MTD] updated in index
+T [ MTD] type changed in index
+A [ MTD] added to index
D deleted from index
-R [ MD] renamed in index
-C [ MD] copied in index
-[MARC] index and work tree matches
-[ MARC] M work tree changed since index
-[ MARC] D deleted in work tree
-[ D] R renamed in work tree
-[ D] C copied in work tree
+R [ MTD] renamed in index
+C [ MTD] copied in index
+[MTARC] index and work tree matches
+[ MTARC] M work tree changed since index
+[ MTARC] T type changed in work tree since index
+[ MTARC] D deleted in work tree
+ R renamed in work tree
+ C copied in work tree
-------------------------------------------------
D D unmerged, both deleted
A U unmerged, added by us
diff --git a/howto/coordinate-embargoed-releases.html b/howto/coordinate-embargoed-releases.html
index b0510b64a..fd5448652 100644
--- a/howto/coordinate-embargoed-releases.html
+++ b/howto/coordinate-embargoed-releases.html
@@ -873,7 +873,7 @@ Thanks,
<div id="footer">
<div id="footer-text">
Last updated
- 2021-10-11 12:48:37 PDT
+ 2021-10-14 10:10:40 PDT
</div>
</div>
</body>
diff --git a/howto/keep-canonical-history-correct.html b/howto/keep-canonical-history-correct.html
index 41a376d64..80b3b8cb8 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
- 2021-10-11 12:48:37 PDT
+ 2021-10-14 10:10:39 PDT
</div>
</div>
</body>
diff --git a/howto/maintain-git.html b/howto/maintain-git.html
index 0d76a837b..12b321bf6 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
- 2021-10-11 12:48:37 PDT
+ 2021-10-14 10:10:39 PDT
</div>
</div>
</body>
diff --git a/howto/new-command.html b/howto/new-command.html
index 71c9c5281..7aa4acaa1 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
- 2021-10-11 12:48:35 PDT
+ 2021-10-14 10:10:37 PDT
</div>
</div>
</body>
diff --git a/howto/rebase-from-internal-branch.html b/howto/rebase-from-internal-branch.html
index f9e3ae2d6..2339f8cbd 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
- 2021-10-11 12:48:37 PDT
+ 2021-10-14 10:10:39 PDT
</div>
</div>
</body>
diff --git a/howto/rebuild-from-update-hook.html b/howto/rebuild-from-update-hook.html
index 82515d7a3..1c650fded 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
- 2021-10-11 12:48:37 PDT
+ 2021-10-14 10:10:39 PDT
</div>
</div>
</body>
diff --git a/howto/recover-corrupted-blob-object.html b/howto/recover-corrupted-blob-object.html
index 7aeb62ff9..aeb746f2a 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
- 2021-10-11 12:48:37 PDT
+ 2021-10-14 10:10:39 PDT
</div>
</div>
</body>
diff --git a/howto/recover-corrupted-object-harder.html b/howto/recover-corrupted-object-harder.html
index acb2f43ec..62451bf67 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
- 2021-10-11 12:48:37 PDT
+ 2021-10-14 10:10:39 PDT
</div>
</div>
</body>
diff --git a/howto/revert-a-faulty-merge.html b/howto/revert-a-faulty-merge.html
index e7c29e868..46b9ded3d 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
- 2021-10-11 12:48:36 PDT
+ 2021-10-14 10:10:38 PDT
</div>
</div>
</body>
diff --git a/howto/revert-branch-rebase.html b/howto/revert-branch-rebase.html
index 72cd53430..38065e8fc 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
- 2021-10-11 12:48:35 PDT
+ 2021-10-14 10:10:37 PDT
</div>
</div>
</body>
diff --git a/howto/separating-topic-branches.html b/howto/separating-topic-branches.html
index 14d1e3049..6bfc86295 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
- 2021-10-11 12:48:36 PDT
+ 2021-10-14 10:10:38 PDT
</div>
</div>
</body>
diff --git a/howto/setup-git-server-over-http.html b/howto/setup-git-server-over-http.html
index df01a313b..0d8f59d7b 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
- 2021-10-11 12:48:36 PDT
+ 2021-10-14 10:10:38 PDT
</div>
</div>
</body>
diff --git a/howto/update-hook-example.html b/howto/update-hook-example.html
index bc21bc680..30eae42c8 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
- 2021-10-11 12:48:36 PDT
+ 2021-10-14 10:10:38 PDT
</div>
</div>
</body>
diff --git a/howto/use-git-daemon.html b/howto/use-git-daemon.html
index bbd5909f3..4e6864f7b 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
- 2021-10-11 12:48:36 PDT
+ 2021-10-14 10:10:38 PDT
</div>
</div>
</body>
diff --git a/howto/using-merge-subtree.html b/howto/using-merge-subtree.html
index 077f5ebcb..55cdee3c1 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
- 2021-10-11 12:48:35 PDT
+ 2021-10-14 10:10:37 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 951628d3c..8b1606e23 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
- 2021-10-11 12:48:35 PDT
+ 2021-10-14 10:10:37 PDT
</div>
</div>
</body>
diff --git a/technical/api-trace2.html b/technical/api-trace2.html
index 86a4886bd..a74c8ebaa 100644
--- a/technical/api-trace2.html
+++ b/technical/api-trace2.html
@@ -1515,6 +1515,47 @@ So this time will be slightly larger than the atexit time reported by
the child process itself.</p></div>
</dd>
<dt class="hdlist1">
+<code>"child_ready"</code>
+</dt>
+<dd>
+<p>
+ This event is generated after the current process has started
+ a background process and released all handles to it.
+</p>
+<div class="listingblock">
+<div class="content">
+<pre><code>{
+ "event":"child_ready",
+ ...
+ "child_id":2,
+ "pid":14708, # child PID
+ "ready":"ready", # child ready state
+ "t_rel":0.110605 # observed run-time of child process
+}</code></pre>
+</div></div>
+<div class="paragraph"><p>Note that the session-id of the child process is not available to
+the current/spawning process, so the child&#8217;s PID is reported here as
+a hint for post-processing. (But it is only a hint because the child
+process may be a shell script which doesn&#8217;t have a session-id.)</p></div>
+<div class="paragraph"><p>This event is generated after the child is started in the background
+and given a little time to boot up and start working. If the child
+startups normally and while the parent is still waiting, the "ready"
+field will have the value "ready".
+If the child is too slow to start and the parent times out, the field
+will have the value "timeout".
+If the child starts but the parent is unable to probe it, the field
+will have the value "error".</p></div>
+<div class="paragraph"><p>After the parent process emits this event, it will release all of its
+handles to the child process and treat the child as a background
+daemon. So even if the child does eventually finish booting up,
+the parent will not emit an updated event.</p></div>
+<div class="paragraph"><p>Note that the <code>t_rel</code> field contains the observed run time in seconds
+when the parent released the child process into the background.
+The child is assumed to be a long-running daemon process and may
+outlive the parent process. So the parent&#8217;s child event times should
+not be compared to the child&#8217;s atexit times.</p></div>
+</dd>
+<dt class="hdlist1">
<code>"exec"</code>
</dt>
<dd>
@@ -2175,7 +2216,7 @@ Trace2 targets (and convert &lt;key&gt; to a "category").
<div id="footer">
<div id="footer-text">
Last updated
- 2021-08-24 17:58:56 PDT
+ 2021-10-14 10:10:01 PDT
</div>
</div>
</body>
diff --git a/technical/api-trace2.txt b/technical/api-trace2.txt
index b9f3198fb..ef7fe02a8 100644
--- a/technical/api-trace2.txt
+++ b/technical/api-trace2.txt
@@ -613,6 +613,46 @@ stopping after the waitpid() and includes OS process creation overhead).
So this time will be slightly larger than the atexit time reported by
the child process itself.
+`"child_ready"`::
+ This event is generated after the current process has started
+ a background process and released all handles to it.
++
+------------
+{
+ "event":"child_ready",
+ ...
+ "child_id":2,
+ "pid":14708, # child PID
+ "ready":"ready", # child ready state
+ "t_rel":0.110605 # observed run-time of child process
+}
+------------
++
+Note that the session-id of the child process is not available to
+the current/spawning process, so the child's PID is reported here as
+a hint for post-processing. (But it is only a hint because the child
+process may be a shell script which doesn't have a session-id.)
++
+This event is generated after the child is started in the background
+and given a little time to boot up and start working. If the child
+startups normally and while the parent is still waiting, the "ready"
+field will have the value "ready".
+If the child is too slow to start and the parent times out, the field
+will have the value "timeout".
+If the child starts but the parent is unable to probe it, the field
+will have the value "error".
++
+After the parent process emits this event, it will release all of its
+handles to the child process and treat the child as a background
+daemon. So even if the child does eventually finish booting up,
+the parent will not emit an updated event.
++
+Note that the `t_rel` field contains the observed run time in seconds
+when the parent released the child process into the background.
+The child is assumed to be a long-running daemon process and may
+outlive the parent process. So the parent's child event times should
+not be compared to the child's atexit times.
+
`"exec"`::
This event is generated before git attempts to `exec()`
another command rather than starting a child process.