diff options
author | Junio C Hamano <gitster@pobox.com> | 2021-10-14 10:11:58 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-10-14 10:11:58 -0700 |
commit | 7b1585b6902973456b47ee9acd8a01365e52a4df (patch) | |
tree | db6fefbd5686265cb8e111e44cda82b6bde4df27 | |
parent | 7c7cb3360bfca12cec5fa485344d786c4252d247 (diff) | |
download | git-htmldocs-7b1585b6902973456b47ee9acd8a01365e52a4df.tar.gz |
Autogenerated HTML docs for v2.33.1-637-gf443b
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=<file> [--pathspec-file-nul]]
[--] [<pathspec>…]</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=<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>]])</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=<gitignore>
-</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=<file>
</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><commit></code> are discarded.
+ working tree since <code><commit></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=<git-receive-pack>]
+<pre class="content"><em>git send-pack</em> [--dry-run] [--force] [--receive-pack=<git-receive-pack>]
[--verbose] [--thin] [--atomic]
[--[no-]signed|--signed=(true|false|if-asked)]
- [<host>:]<directory> [<ref>…]</pre>
+ [<host>:]<directory> (--all | <ref>…)</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’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.)</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’s child event times should
+not be compared to the child’s atexit times.</p></div>
+</dd>
+<dt class="hdlist1">
<code>"exec"</code>
</dt>
<dd>
@@ -2175,7 +2216,7 @@ Trace2 targets (and convert <key> 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. |