|
| 1 | +Git v2.53 Release Notes |
| 2 | +======================= |
| 3 | + |
| 4 | +UI, Workflows & Features |
| 5 | +------------------------ |
| 6 | + |
| 7 | + * "git maintenance" command learned "is-needed" subcommand to tell if |
| 8 | + it is necessary to perform various maintenance tasks. |
| 9 | + |
| 10 | + * "git replay" (experimental) learned to perform ref updates itself |
| 11 | + in a transaction by default, instead of emitting where each refs |
| 12 | + should point at and leaving the actual update to another command. |
| 13 | + |
| 14 | + * "git blame" learns "--diff-algorithm=<algo>" option. |
| 15 | + |
| 16 | + * "git repo info" learned "--all" option. |
| 17 | + |
| 18 | + * Both "git apply" and "git diff" learn a new whitespace error class, |
| 19 | + "incomplete-line". |
| 20 | + |
| 21 | + * Add a new manual that describes the data model. |
| 22 | + |
| 23 | + * "git fast-import" learns "--strip-if-invalid" option to drop |
| 24 | + invalid cryptographic signature from objects. |
| 25 | + |
| 26 | + * The use of "revision" (a connected set of commits) has been |
| 27 | + clarified in the "git replay" documentation. |
| 28 | + |
| 29 | + * A help message from "git branch" now mentions "git help" instead of |
| 30 | + "man" when suggesting to read some documentation. |
| 31 | + |
| 32 | + * "git repo struct" learned to take "-z" as a synonym to "--format=nul". |
| 33 | + |
| 34 | + * More object database related information are shown in "git repo |
| 35 | + structure" output. |
| 36 | + |
| 37 | + |
| 38 | +Performance, Internal Implementation, Development Support etc. |
| 39 | +-------------------------------------------------------------- |
| 40 | +
|
| 41 | + * The list of packfiles used in a running Git process is moved from |
| 42 | + the packed_git structure into the packfile store. |
| 43 | +
|
| 44 | + * Some ref backend storage can hold not just the object name of an |
| 45 | + annotated tag, but the object name of the object the tag points at. |
| 46 | + The code to handle this information has been streamlined. |
| 47 | +
|
| 48 | + * As "git diff --quiet" only cares about the existence of any |
| 49 | + changes, disable rename/copy detection to skip more expensive |
| 50 | + processing whose result will be discarded anyway. |
| 51 | +
|
| 52 | + * A part of code paths that deals with loose objects has been cleaned |
| 53 | + up. |
| 54 | +
|
| 55 | + * "make strip" has been taught to strip "scalar" as well as "git". |
| 56 | +
|
| 57 | + * Dockerised jobs at the GitHub Actions CI have been taught to show |
| 58 | + more details of failed tests. |
| 59 | +
|
| 60 | + * Code refactoring around object database sources. |
| 61 | +
|
| 62 | + * Halve the memory consumed by artificial filepairs created during |
| 63 | + "git diff --find-copioes-harder", also making the operation run |
| 64 | + faster. |
| 65 | +
|
| 66 | + * The "git_istream" abstraction has been revamped to make it easier |
| 67 | + to interface with pluggable object database design. |
| 68 | +
|
| 69 | + * Rewrite the only use of "mktemp()" that is subject to TOCTOU race |
| 70 | + and Stop using the insecure "mktemp()" function. |
| 71 | + (merge 10bba537c4 rs/ban-mktemp later to maint). |
| 72 | +
|
| 73 | + * In-code comment update to clarify that single-letter options are |
| 74 | + outside of the scope of command line completion script. |
| 75 | + (merge dc8a00fafe jc/completion-no-single-letter-options later to maint). |
| 76 | +
|
| 77 | + * MEMZERO_ARRAY() helper is introduced to avoid clearing only the |
| 78 | + first N bytes of an N-element array whose elements are larger than |
| 79 | + a byte. |
| 80 | +
|
| 81 | + * "git diff-files -R --find-copies-harder" has been taught to use |
| 82 | + the potential copy sources from the index correctly. |
| 83 | +
|
| 84 | + * Require C99 style flexible array member support from all platforms. |
| 85 | +
|
| 86 | + * The code path that enumerates promisor objects have been optimized |
| 87 | + to skip pointlessly parsing blob objects. |
| 88 | +
|
| 89 | + * Prepare test suite for Git for Windows that supports symbolic |
| 90 | + links. |
| 91 | +
|
| 92 | + * Use hook API to replace ad-hoc invocation of hook scripts with the |
| 93 | + run_command() API. |
| 94 | +
|
| 95 | +
|
| 96 | +Fixes since v2.52 |
| 97 | +----------------- |
| 98 | + |
| 99 | + * Ever since we added whitespace rules for this project, we misspelt |
| 100 | + an entry, which has been corrected. |
| 101 | + (merge 358e94dc70 jc/gitattributes-whitespace-no-indent-fix later to maint). |
| 102 | + |
| 103 | + * The code to expand attribute macros has been rewritten to avoid |
| 104 | + recursion to avoid running out of stack space in an uncontrolled |
| 105 | + way. |
| 106 | + (merge 42ed046866 jk/attr-macroexpand-wo-recursion later to maint). |
| 107 | + |
| 108 | + * Adding a repository that uses a different hash function is a no-no, |
| 109 | + but "git submodule add" did nt prevent it, which has been corrected. |
| 110 | + (merge 6fe288bfbc bc/submodule-force-same-hash later to maint). |
| 111 | + |
| 112 | + * An earlier check added to osx keychain credential helper to avoid |
| 113 | + storing the credential itself supplied was overeager and rejected |
| 114 | + credential material supplied by other helper backends that it would |
| 115 | + have wanted to store, which has been corrected. |
| 116 | + (merge 4580bcd235 kn/osxkeychain-idempotent-store-fix later to maint). |
| 117 | + |
| 118 | + * The "git repo structure" subcommand tried to align its output but |
| 119 | + mixed up byte count and display column width, which has been |
| 120 | + corrected. |
| 121 | + (merge 7a03a10a3a jx/repo-struct-utf8width-fix later to maint). |
| 122 | + |
| 123 | + * Yet another corner case fix around renames in the "ort" merge |
| 124 | + strategy. |
| 125 | + (merge a562d90a35 en/ort-rename-another-fix later to maint). |
| 126 | + |
| 127 | + * Test leakfix. |
| 128 | + (merge 14b561e768 jk/test-mktemp-leakfix later to maint). |
| 129 | + |
| 130 | + * Update a version of action used at the GitHub Actrions CI. |
| 131 | + (merge cd99203f86 js/ci-github-setup-go-update later to maint). |
| 132 | + |
| 133 | + * The "return errno = EFOO, -1" construct, which is heavily used in |
| 134 | + compat/mingw.c and triggers warnings under "-Wcomma", has been |
| 135 | + rewritten to avoid the warnings. |
| 136 | + (merge af3919816f js/mingw-assign-comma-fix later to maint). |
| 137 | + |
| 138 | + * Makefile based build have recently been updated to build a |
| 139 | + libgit.a that also has reftable and xdiff objects; CMake based |
| 140 | + build procedure has been updated to match. |
| 141 | + (merge b0d5c88cca js/cmake-libgit-fix later to maint). |
| 142 | + |
| 143 | + * Under-allocation fix. |
| 144 | + (merge d22a488482 js/wincred-get-credential-alloc-fix later to maint). |
| 145 | + |
| 146 | + * "git worktree list" attempts to show paths to worktrees while |
| 147 | + aligning them, but miscounted display columns for the paths when |
| 148 | + non-ASCII characters were involved, which has been corrected. |
| 149 | + (merge 08dfa59835 pw/worktree-list-display-width-fix later to maint). |
| 150 | + |
| 151 | + * "Windows+meson" job at the GitHub Actions CI was hard to debug, as |
| 152 | + it did not show and save failed test artifacts, which has been |
| 153 | + corrected. |
| 154 | + (merge 17bd1108ea jk/ci-windows-meson-test-fix later to maint). |
| 155 | + |
| 156 | + * Emulation code clean-up. |
| 157 | + (merge 2367c6bcd6 gf/win32-pthread-cond-wait-err later to maint). |
| 158 | + |
| 159 | + * Various issues detected by Asan have been corrected. |
| 160 | + (merge a031b6181a jk/asan-bonanza later to maint). |
| 161 | + |
| 162 | + * "git config get --path" segfaulted on an ":(optional)path" that |
| 163 | + does not exist, which has been corrected. |
| 164 | + (merge 0bd16856ff jc/optional-path later to maint). |
| 165 | + |
| 166 | + * The "--committer-date-is-author-date" option of "git am/rebase" is |
| 167 | + a misguided one. The documentation is updated to discourage its |
| 168 | + use. |
| 169 | + (merge fbf3d0669f kh/doc-committer-date-is-author-date later to maint). |
| 170 | + |
| 171 | + * The option help text given by "git config unset -h" described |
| 172 | + the "--all" option to "replace", not "unset", multiple variables, |
| 173 | + which has been corrected. |
| 174 | + (merge 18bf67b753 rs/config-unset-opthelp-fix later to maint). |
| 175 | + |
| 176 | + * The error message given by "git config set", when the variable |
| 177 | + being updated has more than one values defined, used old style "git |
| 178 | + config" syntax with an incorrect option in its hint, both of which |
| 179 | + have been corrected. |
| 180 | + (merge df963f0df4 rs/config-set-multi-error-message-fix later to maint). |
| 181 | + |
| 182 | + * "git replay" forgot to omit the "gpgsig-sha256" extended header |
| 183 | + from the resulting commit the same way it omits "gpgsig", which has |
| 184 | + been corrected. |
| 185 | + (merge 9f3a115087 pw/replay-exclude-gpgsig-fix later to maint). |
| 186 | + |
| 187 | + * A few tests have been updated to work under the shell compatible |
| 188 | + mode of zsh. |
| 189 | + (merge a92f243a94 bc/zsh-testsuite later to maint). |
| 190 | + |
| 191 | + * The way patience diff finds LCS has been optimized. |
| 192 | + (merge c7e3b8085b yc/xdiff-patience-optim later to maint). |
| 193 | + |
| 194 | + * Recent optimization to "last-modified" command introduced use of |
| 195 | + uninitialized block of memory, which has been corrected. |
| 196 | + (merge fe4e60759b tc/last-modified-active-paths-optimization later to maint). |
| 197 | + |
| 198 | + * "git last-modified" used to mishandle "--" to mark the beginning of |
| 199 | + pathspec, which has been corrected. |
| 200 | + (merge 05491b90ce js/last-modified-with-sparse-checkouts later to maint). |
| 201 | + |
| 202 | + * Emulation code clean-up. |
| 203 | + (merge 42aa7603aa gf/win32-pthread-cond-init later to maint). |
| 204 | + |
| 205 | + * "git submodule add" to add a submodule under <name> segfaulted, |
| 206 | + when a submodule.<name>.something is already in .gitmodules file |
| 207 | + without defining where its submodule.<name>.path is, which has been |
| 208 | + corrected. |
| 209 | + (merge dd8e8c786e jc/submodule-add later to maint). |
| 210 | + |
| 211 | + * "git fetch" that involves fetching tags, when a tag being fetched |
| 212 | + needs to overwrite existing one, failed to fetch other tags, which |
| 213 | + has been corrected. |
| 214 | + (merge b7b17ec8a6 kn/fix-fetch-backfill-tag-with-batched-ref-updates later to maint). |
| 215 | + |
| 216 | + * Document "rev-list --filter-provided-objects" better. |
| 217 | + (merge 6d8dc99478 jt/doc-rev-list-filter-provided-objects later to maint). |
| 218 | + |
| 219 | + * Even when there is no changes in the packfile and no need to |
| 220 | + recompute bitmaps, "git repack" recomputed and updated the MIDX |
| 221 | + file, which has been corrected. |
| 222 | + (merge 6ce9d558ce ps/repack-avoid-noop-midx-rewrite later to maint). |
| 223 | + |
| 224 | + * Update HTTP tests to adjust for changes in curl 8.18.0 |
| 225 | + (merge 17f4b01da7 jk/test-curl-updates later to maint). |
| 226 | + |
| 227 | + * Workaround the "iconv" shipped as part of macOS, which is broken |
| 228 | + handling stateful ISO/IEC 2022 encoded strings. |
| 229 | + (merge cee341e9dd rs/macos-iconv-workaround later to maint). |
| 230 | + |
| 231 | + * Running "git diff" with "--name-only" and other options that allows |
| 232 | + us not to look at the blob contents, while objects that are lazily |
| 233 | + fetched from a promisor remote, caused use-after-free, which has |
| 234 | + been corrected. |
| 235 | + |
| 236 | + * The ort merge machinery hit an assertion failure in a history with |
| 237 | + criss-cross merges renamed a directory and a non-directory, which |
| 238 | + has been corrected. |
| 239 | + (merge 979ee83e8a en/ort-recursive-d-f-conflict-fix later to maint). |
| 240 | + |
| 241 | + * Diagnose invalid bundle-URI that lack the URI entry, instead of |
| 242 | + crashing. |
| 243 | + (merge 7796c14a1a sb/bundle-uri-without-uri later to maint). |
| 244 | + |
| 245 | + * Mailmap update for Karsten |
| 246 | + (merge e97678c4ef js/mailmap-karsten-blees later to maint). |
| 247 | + |
| 248 | + * Other code cleanup, docfix, build fix, etc. |
| 249 | + (merge 46207a54cc qj/doc-http-bad-want-response later to maint). |
| 250 | + (merge df90eccd93 kh/doc-commit-extra-references later to maint). |
| 251 | + (merge f18aa68861 rs/xmkstemp-simplify later to maint). |
| 252 | + (merge fddba8f737 ja/doc-synopsis-style later to maint). |
| 253 | + (merge 22ce0cb639 en/xdiff-cleanup-2 later to maint). |
| 254 | + (merge 8ef7355a8f je/doc-pull later to maint). |
| 255 | + (merge 48176f953f jc/capability-leak later to maint). |
| 256 | + (merge 8cbbdc92f7 kh/doc-pre-commit-fix later to maint). |
| 257 | + (merge d4bc39a4d9 mh/doc-config-gui-gcwarning later to maint). |
| 258 | + (merge 41d425008a kh/doc-send-email-paragraph-fix later to maint). |
| 259 | + (merge d4b732899e jc/macports-darwinports later to maint). |
| 260 | + (merge bab391761d kj/pull-options-decl-cleanup later to maint). |
| 261 | + (merge 007b8994d4 rs/t4014-git-version-string-fix later to maint). |
| 262 | + (merge 4ce170c522 ds/doc-scalar-config later to maint). |
| 263 | + (merge a0c813951a jc/doc-commit-signoff-config later to maint). |
| 264 | + (merge 8ee262985a ja/doc-misc-fixes later to maint). |
| 265 | + (merge 1722c2244b mh/doc-core-attributesfile later to maint). |
| 266 | + (merge c469ca26c5 dk/ci-rust-fix later to maint). |
| 267 | + (merge 12f0be0857 gf/clear-path-cache-cleanup later to maint). |
| 268 | + (merge 949df6ed6b js/test-func-comment-fix later to maint). |
| 269 | + (merge 93f894c001 bc/checkout-error-message-fix later to maint). |
| 270 | + (merge abf05d856f rs/show-branch-prio-queue later to maint). |
| 271 | + (merge 06188ea5f3 rs/parse-config-expiry-simplify later to maint). |
| 272 | + (merge 861dbb1586 dd/t5403-modernise later to maint). |
| 273 | + (merge acffc5e9e5 ja/doc-synopsis-style-more later to maint). |
0 commit comments