| 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. |
| |
| * More UNUSED annotation to help using -Wunused option with the |
| compiler. |
| (merge 4b992f0a24 jk/unused-anno-more later to maint). |
| |
| |
| 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). |
| |
| * A bugfix with tracing support in midx codepath |
| (merge e9c3839944 tb/midx-bitmap-selection-fix later to maint). |
| |
| * When geometric repacking feature is in use together with the |
| --pack-kept-objects option, we lost packs marked with .keep files. |
| (merge 197443e80a tb/save-keep-pack-during-geometric-repack later to maint). |
| |
| * Move a global variable added as a hack during regression fixes to |
| its proper place in the API. |
| (merge 0b0ab95f17 ab/run-hook-api-cleanup later to maint). |
| |
| * Update to build procedure with VS using CMake/CTest. |
| (merge c858750b41 js/cmake-updates 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). |
| (merge 8d2863e4ed nw/t1002-cleanup later to maint). |