git-commit-vandalism/Documentation/RelNotes/2.39.0.txt
2022-10-26 10:49:20 -07:00

149 lines
5.7 KiB
Plaintext

Git v2.39 Release Notes
=======================
UI, Workflows & Features
------------------------
* "git grep" learned to expand the sparse-index more lazily and on
demand in a sparse checkout.
* By default, use of fsmonitor on a repository on networked
filesystem is disabled. Add knobs to make it workable on macOS.
* After checking out a "branch" that is a symbolic-ref that points at
another branch, "git symbolic-ref HEAD" reports the underlying
branch, not the symbolic-ref the user gave checkout as argument.
The command learned the "--no-recurse" option to stop after
dereferencing a symbolic-ref only once.
* "git branch --edit-description @{-1}" is now a way to edit branch
description of the branch you were on before switching to the
current branch.
Performance, Internal Implementation, Development Support etc.
--------------------------------------------------------------
* With a bit of header twiddling, use the native regexp library on
macOS instead of the compat/ one.
* Prepare for GNU [ef]grep that throw warning of their uses.
* Sources related to fuzz testing have been moved down to their own
directory.
* Most credential helpers ignored unknown entries in a credential
description, but a few died upon seeing them. The latter were
taught to ignore them, too
* "scalar unregister" in a repository that is already been
unregistered reported an error.
* Remove error detection from a function that fetches from promisor
remotes, and make it die when such a fetch fails to bring all the
requested objects, to give an early failure to various operations.
* Update CodingGuidelines to clarify what features to use and avoid
in C99.
* Avoid false-positive from LSan whose assumption may be broken with
higher optimization levels.
* Enable address and undefined sanitizer tasks at GitHub Actions CI.
Fixes since v2.38
-----------------
* The codepath that reads from the index v4 had unaligned memory
accesses, which has been corrected.
* Fix messages incorrectly marked for translation.
* "git fsck" failed to release contents of tree objects already used
from the memory, which has been fixed.
* "git clone" did not like to see the "--bare" and the "--origin"
options used together without a good reason.
* "git remote rename" failed to rename a remote without fetch
refspec, which has been corrected.
* Documentation on various Boolean GIT_* environment variables have
been clarified.
(merge 819fb68222 jc/environ-docs later to maint).
* "git rebase -i" can mistakenly attempt to apply a fixup to a commit
itself, which has been corrected.
* "git multi-pack-index repack/expire" used to repack unreachable
cruft into a new pack, which have been corrected.
(merge b62ad5681f tb/midx-repack-ignore-cruft-packs later to maint).
* In read-only repositories, "git merge-tree" tried to come up with a
merge result tree object, which it failed (which is not wrong) and
led to a segfault (which is bad), which has been corrected.
* Force C locale while running tests around httpd to make sure we can
find expected error messages in the log.
* Fix a logic in "mailinfo -b" that miscomputed the length of a
substring, which lead to an out-of-bounds access.
* The codepath to sign learned to report errors when it fails to read
from "ssh-keygen".
* Code clean-up that results in plugging a leak.
* "GIT_EDITOR=: git branch --edit-description" resulted in failure,
which has been corrected.
* The code to clean temporary object directories (used for
quarantine) tried to remove them inside its signal handler, which
was a no-no.
(merge 22613b25ec jc/tmp-objdir later to maint).
* Update comment in the Makefile about the RUNTIME_PREFIX config knob.
(merge ebb6c16607 dd/document-runtime-prefix-better later to maint).
* Clarify that "the sentence after <area>: prefix does not begin with
a capital letter" rule applies only to the commit title.
(merge 3991bb73dd jc/use-of-uc-in-log-messages later to maint).
* "git branch --edit-description" on an unborh branch misleadingly
said that no such branch exists, which has been corrected.
(merge bcfc82bd48 rj/branch-edit-desc-unborn later to maint).
* Work around older clang that warns against C99 zero initialization
syntax for struct.
(merge 54795d37d9 jh/struct-zero-init-with-older-clang later to maint).
* Giving "--invert-grep" and "--all-match" without "--grep" to the
"git log" command resulted in an attempt to access grep pattern
expression structure that has not been allocated, which has been
corrected.
(merge db84376f98 ab/grep-simplify-extended-expression later to maint).
* "git diff rev^!" did not show combined diff to go to the rev from
its parents.
(merge a79c6b6081 rs/diff-caret-bang-with-parents later to maint).
* Allow configuration files in "protected" scopes to include other
configuration files.
(merge ecec57b3c9 gc/bare-repo-discovery later to maint).
* Give a bit more diversity to macOS CI by using sha1dc in one of the
jobs (the other one tests Apple Common Crypto).
(merge 1ad5c3df35 jc/ci-osx-with-sha1dc later to maint).
* Other code cleanup, docfix, build fix, etc.
(merge c34a6bd291 so/diff-merges-cleanup later to maint).
(merge 2a905f8fa8 ah/branch-autosetupmerge-grammofix later to maint).
(merge abcac2e19f rj/ref-filter-get-head-description-leakfix later to maint).
(merge 71e5473493 hn/parse-worktree-ref later to maint).
(merge 7c07f36ad2 ab/unused-annotation later to maint).
(merge f7669676d0 rs/use-fspathncmp later to maint).
(merge a677d3c416 pw/remove-rebase-p-test later to maint).
(merge e3733b646d rs/archive-dedup-printf later to maint).
(merge 413bc6d20a ds/cmd-main-reorder later to maint).