git/Documentation/RelNotes/2.38.0.txt
Junio C Hamano 71a8fab31b The fourth batch
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-07-18 13:31:58 -07:00

130 lines
5.3 KiB
Plaintext

Git v2.38 Release Notes
=======================
UI, Workflows & Features
* "git remote show [-n] frotz" now pays attention to negative
pathspec.
* "git push" sometimes perform poorly when reachability bitmaps are
used, even in a repository where other operations are helped by
bitmaps. The push.useBitmaps configuration variable is introduced
to allow disabling use of reachability bitmaps only for "git push".
* "git grep -m<max-hits>" is a way to limit the hits shown per file.
* "git merge-tree" learned a new mode where it takes two commits and
computes a tree that would result in the merge commit, if the
histories leading to these two commits were to be merged.
* "git mv A B" in a sparsely populated working tree can be asked to
move a path between directories that are "in cone" (i.e. expected
to be materialized in the working tree) and "out of cone"
(i.e. expected to be hidden). The handling of such cases has been
improved.
Performance, Internal Implementation, Development Support etc.
* Collection of what is referenced by objects in promisor packs have
been optimized to inspect these objects in the in-pack order.
* Introduce a helper to see if a branch is already being worked on
(hence should not be newly checked out in a working tree), which
performs much better than the existing find_shared_symref() to
replace many uses of the latter.
* Teach "git archive" to (optionally and then by default) avoid
spawning an external "gzip" process when creating ".tar.gz" (and
".tgz") archives.
* Allow large objects read from a packstream to be streamed into a
loose object file straight, without having to keep it in-core as a
whole.
* Further preparation to turn git-submodule.sh into a builtin
continues.
* Apply Coccinelle rule to turn raw memmove() into MOVE_ARRAY() cpp
macro, which would improve maintainability and readability.
* Teach "make all" to build gitweb as well.
* Tweak tests so that they still work when the "git init" template
did not create .git/info directory.
* Add Coccinelle rules to detect the pattern of initializing and then
finalizing a structure without using it in between at all, which
happens after code restructuring and the compilers fail to
recognize as an unused variable.
* The code to convert between GPG trust level strings and internal
constants we use to represent them have been cleaned up.
* Support for libnettle as SHA256 implementation has been added.
* The way "git multi-pack" uses parse-options API has been improved.
Fixes since v2.37
-----------------
* Rewrite of "git add -i" in C that appeared in Git 2.25 didn't
correctly record a removed file to the index, which was fixed.
(merge 4788e8b256 js/add-i-delete later to maint).
* Certain diff options are currently ignored when combined-diff is
shown; mark them as incompatible with the feature.
(merge cfb19ae05f rs/combine-diff-with-incompatible-options later to maint).
* Adjust technical/bitmap-format to be formatted by AsciiDoc, and
add some missing information to the documentation.
(merge ac7667bd44 ac/bitmap-format-doc later to maint).
* Fixes for tests when the source directory has unusual characters in
its path, e.g. whitespaces, double-quotes, etc.
(merge eb1cd60290 ab/test-quoting-fix later to maint).
* "git mktree --missing" lazily fetched objects that are missing from
the local object store, which was totally unnecessary for the purpose
of creating the tree object(s) from its input.
(merge 817b0f6027 ro/mktree-allow-missing-fix later to maint).
* Give _() markings to fatal/warning/usage: labels that are shown in
front of these messages.
(merge a1fd2cf8cd dr/i18n-die-warn-error-usage later to maint).
* References to commands-to-be-typed-literally in "git rebase"
documentation mark-up have been corrected.
(merge 54e51e559e ds/git-rebase-doc-markup later to maint).
* In a non-bare repository, the behavior of Git when the
core.worktree configuration variable points at a directory that has
a repository as its subdirectory, regressed in Git 2.27 days.
(merge d6c9a71755 gg/worktree-from-the-above later to maint).
* Recent update to vimdiff layout code has been made more robust
against different end-user vim settings.
(merge f3d7623a13 fr/vimdiff-layout-fix later to maint).
* Plug various memory leaks.
(merge ece3974ba6 ab/leakfix later to maint).
* Plug various memory leaks in test-tool commands.
(merge f40a693450 ab/test-tool-leakfix later to maint).
* Fixes a long-standing corner case bug around directory renames in
the merge-ort strategy.
(merge 751e165424 en/merge-dual-dir-renames-fix later to maint).
* Other code cleanup, docfix, build fix, etc.
(merge 5fd9d1738e jk/revisions-doc-markup-fix later to maint).
(merge 1971510c35 pb/diff-doc-raw-format later to maint).
(merge a3ba4fa715 cr/setup-bug-typo later to maint).
(merge 85845580d9 ds/vscode-settings later to maint).
(merge ec2f6c0cca en/t6429-test-must-be-empty-fix later to maint).
(merge 14deb585fb tb/pack-objects-remove-pahole-comment later to maint).
(merge 2ffb7d13ee ds/t5510-brokequote later to maint).
(merge 18337d406f ll/ls-files-tests-update later to maint).
(merge 8cdab69d96 tk/rev-parse-doc-clarify-at-u later to maint).