You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
279 lines
12 KiB
279 lines
12 KiB
Git 2.36 Release Notes |
|
====================== |
|
|
|
Updates since Git 2.35 |
|
---------------------- |
|
|
|
Backward compatibility warts |
|
|
|
* "git name-rev --stdin" has been deprecated and issues a warning |
|
when used; use "git name-rev --annotate-stdin" instead. |
|
|
|
* "git clone --filter=... --recurse-submodules" only makes the |
|
top-level a partial clone, while submodules are fully cloned. This |
|
behaviour is changed to pass the same filter down to the submodules. |
|
|
|
|
|
Note to those who build from the source |
|
|
|
* |
|
|
|
|
|
UI, Workflows & Features |
|
|
|
* Assorted updates to "git cat-file", especially "-h". |
|
|
|
* The command line completion (in contrib/) learns to complete |
|
arguments to give to "git sparse-checkout" command. |
|
|
|
* "git log --remerge-diff" shows the difference from mechanical merge |
|
result and the result that is actually recorded in a merge commit. |
|
|
|
* "git log" and friends learned an option --exclude-first-parent-only |
|
to propagate UNINTERESTING bit down only along the first-parent |
|
chain, just like --first-parent option shows commits that lack the |
|
UNINTERESTING bit only along the first-parent chain. |
|
|
|
* The command line completion script (in contrib/) learned to |
|
complete all Git subcommands, including the ones that are normally |
|
hidden, when GIT_COMPLETION_SHOW_ALL_COMMANDS is used. |
|
|
|
* "git branch" learned the "--recurse-submodules" option. |
|
|
|
* A not-so-common mistake is to write a script to feed "git bisect |
|
run" without making it executable, in which case all tests will |
|
exit with 126 or 127 error codes, even on revisions that are marked |
|
as good. Try to recognize this situation and stop iteration early. |
|
|
|
* When "index-pack" dies due to incoming data exceeding the maximum |
|
allowed input size, include the value of the limit in the error |
|
message. |
|
|
|
* The error message given by "git switch HEAD~4" has been clarified |
|
to suggest the "--detach" option that is required. |
|
|
|
|
|
Performance, Internal Implementation, Development Support etc. |
|
|
|
* "git apply" (ab)used the util pointer of the string-list to keep |
|
track of how each symbolic link needs to be handled, which has been |
|
simplified by using strset. |
|
|
|
* Fix a hand-rolled alloca() imitation that may have violated |
|
alignment requirement of data being sorted in compatibility |
|
implementation of qsort_s() and stable qsort(). |
|
|
|
* Use the parse-options API in "git reflog" command. |
|
|
|
* The conditional inclusion mechanism of configuration files using |
|
"[includeIf <condition>]" learns to base its decision on the |
|
URL of the remote repository the repository interacts with. |
|
(merge 399b198489 jt/conditional-config-on-remote-url later to maint). |
|
|
|
* "git name-rev --stdin" does not behave like usual "--stdin" at |
|
all. Start the process of renaming it to "--annotate-stdin". |
|
(merge a2585719b3 jc/name-rev-stdin later to maint). |
|
|
|
* "git update-index", "git checkout-index", and "git clean" are |
|
taught to work better with the sparse checkout feature. |
|
|
|
* Use an internal call to reset_head() helper function instead of |
|
spawning "git checkout" in "rebase", and update code paths that are |
|
involved in the change. |
|
|
|
* Messages "ort" merge backend prepares while dealing with conflicted |
|
paths were unnecessarily confusing since it did not differentiate |
|
inner merges and outer merges. |
|
|
|
* Small modernization of the rerere-train script (in contrib/). |
|
|
|
* Use designated initializers we started using in mid 2017 in more |
|
parts of the codebase that are relatively quiescent. |
|
|
|
|
|
Fixes since v2.35 |
|
----------------- |
|
|
|
* "rebase" and "stash" in secondary worktrees are broken in |
|
Git 2.35.0, which has been corrected. |
|
|
|
* "git pull --rebase" ignored the rebase.autostash configuration |
|
variable when the remote history is a descendant of our history, |
|
which has been corrected. |
|
(merge 3013d98d7a pb/pull-rebase-autostash-fix later to maint). |
|
|
|
* "git update-index --refresh" has been taught to deal better with |
|
racy timestamps (just like "git status" already does). |
|
(merge 2ede073fd2 ms/update-index-racy later to maint). |
|
|
|
* Avoid tests that are run under GIT_TRACE2 set from failing |
|
unnecessarily. |
|
(merge 944d808e42 js/test-unset-trace2-parents later to maint). |
|
|
|
* The merge-ort misbehaved when merge.renameLimit configuration is |
|
set too low and failed to find all renames. |
|
(merge 9ae39fef7f en/merge-ort-restart-optim-fix later to maint). |
|
|
|
* We explain that revs come first before the pathspec among command |
|
line arguments, but did not spell out that dashed options come |
|
before other args, which has been corrected. |
|
(merge c11f95010c tl/doc-cli-options-first later to maint). |
|
|
|
* "git add -p" rewritten in C regressed hunk splitting in some cases, |
|
which has been corrected. |
|
(merge 7008ddc645 pw/add-p-hunk-split-fix later to maint). |
|
|
|
* "git fetch --negotiate-only" is an internal command used by "git |
|
push" to figure out which part of our history is missing from the |
|
other side. It should never recurse into submodules even when |
|
fetch.recursesubmodules configuration variable is set, nor it |
|
should trigger "gc". The code has been tightened up to ensure it |
|
only does common ancestry discovery and nothing else. |
|
(merge de4eaae63a gc/fetch-negotiate-only-early-return later to maint). |
|
|
|
* The code path that verifies signatures made with ssh were made to |
|
work better on a system with CRLF line endings. |
|
(merge caeef01ea7 fs/ssh-signing-crlf later to maint). |
|
|
|
* "git sparse-checkout init" failed to write into $GIT_DIR/info |
|
directory when the repository was created without one, which has |
|
been corrected to auto-create it. |
|
(merge 7f44842ac1 jt/sparse-checkout-leading-dir-fix later to maint). |
|
|
|
* Cloning from a repository that does not yet have any branches or |
|
tags but has other refs resulted in a "remote transport reported |
|
error", which has been corrected. |
|
(merge dccea605b6 jt/clone-not-quite-empty later to maint). |
|
|
|
* Mark in various places in the code that the sparse index and the |
|
split index features are mutually incompatible. |
|
(merge 451b66c533 js/sparse-vs-split-index later to maint). |
|
|
|
* Update the logic to compute alignment requirement for our mem-pool. |
|
(merge e38bcc66d8 jc/mem-pool-alignment later to maint). |
|
|
|
* Pick a better random number generator and use it when we prepare |
|
temporary filenames. |
|
(merge 47efda967c bc/csprng-mktemps later to maint). |
|
|
|
* Update the contributor-facing documents on proposed log messages. |
|
(merge cdba0295b0 jc/doc-log-messages later to maint). |
|
|
|
* When "git fetch --prune" failed to prune the refs it wanted to |
|
prune, the command issued error messages but exited with exit |
|
status 0, which has been corrected. |
|
(merge c9e04d905e tg/fetch-prune-exit-code-fix later to maint). |
|
|
|
* Problems identified by Coverity in the reftable code have been |
|
corrected. |
|
(merge 01033de49f hn/reftable-coverity-fixes later to maint). |
|
|
|
* A bug that made multi-pack bitmap and the object order out-of-sync, |
|
making the .midx data corrupt, has been fixed. |
|
(merge f8b60cf99b tb/midx-bitmap-corruption-fix later to maint). |
|
|
|
* The build procedure has been taught to notice older version of zlib |
|
and enable our replacement uncompress2() automatically. |
|
(merge 07564773c2 ab/auto-detect-zlib-compress2 later to maint). |
|
|
|
* Interaction between fetch.negotiationAlgorithm and |
|
feature.experimental configuration variables has been corrected. |
|
(merge 714edc620c en/fetch-negotiation-default-fix later to maint). |
|
|
|
* "git diff --diff-filter=aR" is now parsed correctly. |
|
(merge 75408ca949 js/diff-filter-negation-fix later to maint). |
|
|
|
* When "git subtree" wants to create a merge, it used "git merge" and |
|
let it be affected by end-user's "merge.ff" configuration, which |
|
has been corrected. |
|
(merge 9158a3564a tk/subtree-merge-not-ff-only later to maint). |
|
|
|
* Unlike "git apply", "git patch-id" did not handle patches with |
|
hunks that has only 1 line in either preimage or postimage, which |
|
has been corrected. |
|
(merge 757e75c81e jz/patch-id-hunk-header-parsing-fix later to maint). |
|
|
|
* "receive-pack" checks if it will do any ref updates (various |
|
conditions could reject a push) before received objects are taken |
|
out of the temporary directory used for quarantine purposes, so |
|
that a push that is known-to-fail will not leave crufts that a |
|
future "gc" needs to clean up. |
|
(merge 5407764069 cb/clear-quarantine-early-on-all-ref-update-errors later to maint). |
|
|
|
* Because a deletion of ref would need to remove it from both the |
|
loose ref store and the packed ref store, a delete-ref operation |
|
that logically removes one ref may end up invoking ref-transaction |
|
hook twice, which has been corrected. |
|
(merge 2ed1b64ebd ps/avoid-unnecessary-hook-invocation-with-packed-refs later to maint). |
|
|
|
* When there is no object to write .bitmap file for, "git |
|
multi-pack-index" triggered an error, instead of just skipping, |
|
which has been corrected. |
|
(merge eb57277ba3 tb/midx-no-bitmap-for-no-objects later to maint). |
|
|
|
* "git cmd -h" outside a repository should error out cleanly for many |
|
commands, but instead it hit a BUG(), which has been corrected. |
|
(merge 87ad07d735 js/short-help-outside-repo-fix later to maint). |
|
|
|
* "working tree" and "per-worktree ref" were in glossary, but |
|
"worktree" itself wasn't, which has been corrected. |
|
(merge 2df5387ed0 jc/glossary-worktree later to maint). |
|
|
|
* L10n support for a few error messages. |
|
(merge 3d3c23b3a7 bs/forbid-i18n-of-protocol-token-in-fetch-pack later to maint). |
|
|
|
* Test modernization. |
|
(merge d4fe066e4b sy/t0001-use-path-is-helper later to maint). |
|
|
|
* "git log --graph --graph" used to leak a graph structure, and there |
|
was no way to countermand "--graph" that appear earlier on the |
|
command line. A "--no-graph" option has been added and resource |
|
leakage has been plugged. |
|
|
|
* Error output given in response to an ambiguous object name has been |
|
improved. |
|
(merge 3a73c1dfaf ab/ambiguous-object-name later to maint). |
|
|
|
* "git sparse-checkout" wants to work with per-worktree configuration, |
|
but did not work well in a worktree attached to a bare repository. |
|
(merge 3ce1138272 ds/sparse-checkout-requires-per-worktree-config later to maint). |
|
|
|
* Setting core.untrackedCache to true failed to add the untracked |
|
cache extension to the index. |
|
|
|
* Workaround we have for versions of PCRE2 before their version 10.36 |
|
were in effect only for their versions newer than 10.36 by mistake, |
|
which has been corrected. |
|
(merge 97169fc361 rs/pcre-invalid-utf8-fix-fix later to maint). |
|
|
|
* Document Taylor as a new member of Git PLC at SFC. Welcome. |
|
(merge e8d56ca863 tb/coc-plc-update later to maint). |
|
|
|
* "git checkout -b branch/with/multi/level/name && git stash" only |
|
recorded the last level component of the branch name, which has |
|
been corrected. |
|
|
|
* Other code cleanup, docfix, build fix, etc. |
|
(merge cfc5cf428b jc/find-header later to maint). |
|
(merge 40e7cfdd46 jh/p4-fix-use-of-process-error-exception later to maint). |
|
(merge 727e6ea350 jh/p4-spawning-external-commands-cleanup later to maint). |
|
(merge 0a6adc26e2 rs/grep-expr-cleanup later to maint). |
|
(merge 4ed7dfa713 po/readme-mention-contributor-hints later to maint). |
|
(merge 6046f7a91c en/plug-leaks-in-merge later to maint). |
|
(merge 8c591dbfce bc/clarify-eol-attr later to maint). |
|
(merge 518e15db74 rs/parse-options-lithelp-help later to maint). |
|
(merge cbac0076ef gh/doc-typos later to maint). |
|
(merge ce14de03db ab/no-errno-from-resolve-ref-unsafe later to maint). |
|
(merge 2826ffad8c rc/negotiate-only-typofix later to maint). |
|
(merge 0f03f04c5c en/sparse-checkout-leakfix later to maint). |
|
(merge 74f3390dde sy/diff-usage-typofix later to maint). |
|
(merge 45d0212a71 ll/doc-mktree-typofix later to maint). |
|
(merge e9b272e4c1 js/no-more-legacy-stash later to maint). |
|
(merge 6798b08e84 ab/do-not-hide-failures-in-git-dot-pm later to maint). |
|
(merge 9325285df4 po/doc-check-ignore-markup-fix later to maint). |
|
(merge cd26cd6c7c sy/modernize-t-lib-read-tree-m-3way later to maint). |
|
(merge d17294a05e ab/hash-object-leakfix later to maint). |
|
(merge b8403129d3 jd/t0015-modernize later to maint). |
|
(merge 332acc248d ds/mailmap later to maint). |
|
(merge 04bf052eef ab/grep-patterntype later to maint). |
|
(merge 6ee36364eb ab/diff-free-more later to maint).
|
|
|