Git fork
at reftables-rust 341 lines 15 kB view raw
1Git v2.51 Release Notes 2======================= 3 4UI, Workflows & Features 5------------------------ 6 7 * Userdiff patterns for the R language have been added. 8 9 * Documentation for "git send-email" has been updated with a bit more 10 credential helper and OAuth information. 11 12 * "git cat-file --batch" learns to understand %(objectmode) atom to 13 allow the caller to tell missing objects (due to repository 14 corruption) and submodules (whose commit objects are OK to be 15 missing) apart. 16 17 * "git diff --no-index dirA dirB" can limit the comparison with 18 pathspec at the end of the command line, just like normal "git 19 diff". 20 21 * "git subtree" (in contrib/) learned to grok GPG signing its commits. 22 23 * "git whatchanged" that is longer to type than "git log --raw" 24 which is its modern rough equivalent has outlived its usefulness 25 more than 10 years ago. Plan to deprecate and remove it. 26 27 * An interchange format for stash entries is defined, and subcommand 28 of "git stash" to import/export has been added. 29 30 * "git merge/pull" has been taught the "--compact-summary" option to 31 use the compact-summary format, intead of diffstat, when showing 32 the summary of the incoming changes. 33 34 * "git imap-send" has been broken for a long time, which has been 35 resurrected and then taught to talk OAuth2.0 etc. 36 37 * Some error messages from "git imap-send" has been updated. 38 39 * When "git daemon" sees a signal while attempting to accept() a new 40 client, instead of retrying, it skipped it by mistake, which has 41 been corrected. 42 43 * The reftable ref backend has matured enough; Git 3.0 will make it 44 the default format in a newly created repositories by default. 45 46 * "netrc" credential helper has been improved to understand textual 47 service names (like smtp) in addition to the numeric port numbers 48 (like 25). 49 50 * Lift the limitation to use changed-path filter in "git log" so that 51 it can be used for a pathspec with multiple literal paths. 52 53 * Clean up the way how signature on commit objects are exported to 54 and imported from fast-import stream. 55 56 * Remove unsupported, unused, and unsupportable old option from "git 57 log". 58 59 * Document recently added "git imap-send --list" with an example. 60 61 * "git pull" learned to pay attention to pull.autostash configuration 62 variable, which overrides rebase/merge.autostash. 63 64 * "git for-each-ref" learns "--start-after" option to help 65 applications that want to page its output. 66 67 * "git switch" and "git restore" are declared to be no longer 68 experimental. 69 70 * "git -c alias.foo=bar foo -h baz" reported "'foo' is aliased to 71 'bar'" and then went on to run "git foo -h baz", which was 72 unexpected. Tighten the rule so that alias expansion is reported 73 only when "-h" is the sole option. 74 75 76Performance, Internal Implementation, Development Support etc. 77-------------------------------------------------------------- 78 79 * "git pack-objects" learned to find delta bases from blobs at the 80 same path, using the --path-walk API. 81 82 * CodingGuidelines update. 83 84 * Add settings for Solaris 10 & 11. 85 86 * Meson-based build/test framework now understands TAP output 87 generated by our tests. 88 89 * "Do not explicitly initialize to zero" rule has been clarified in 90 the CodingGuidelines document. 91 92 * A test helper "test_seq" function learned the "-f <fmt>" option, 93 which allowed us to simplify a lot of test scripts. 94 95 * A lot of stale stuff has been removed from the contrib/ hierarchy. 96 97 * "git push" and "git fetch" are taught to update refs in batches to 98 gain performance. 99 100 * Some code paths in "git prune" used to ignore the passed-in 101 repository object and used the `the_repository` singleton instance 102 instead, which has been corrected. 103 104 * Update ".clang-format" and ".editorconfig" to match our style guide 105 a bit better. 106 107 * "make coccicheck" succeeds even when spatch made suggestions, which 108 has been updated to fail in such a case. 109 110 * Code clean-up around object access API. 111 112 * Define .precision to more canned parse-options type to avoid bugs 113 coming from using a variable with a wrong type to capture the 114 parsed values. 115 116 * Flipping the default hash function to SHA-256 at Git 3.0 boundary 117 is planned. 118 119 * Declare weather-balloon we raised for "bool" type 18 months ago a 120 success and officially allow using the type in our codebase. 121 122 * GIT_TEST_INSTALLED was not honored in the recent topic related to 123 SHA256 hashes, which has been corrected. 124 125 * The pop_most_recent_commit() function can have quite expensive 126 worst case performance characteristics, which has been optimized by 127 using prio-queue data structure. 128 129 * Move structure definition from unrelated header file to where it 130 belongs. 131 132 * To help our developers, document what C99 language features are 133 being considered for adoption, in addition to what past experiments 134 have already decided. 135 136 * The reftable unit tests are now ported to the "clar" unit testing 137 framework. 138 139 * Redefine where the multi-pack-index sits in the object subsystem, 140 which recently was restructured to allow multiple backends that 141 support a single object source that belongs to one repository. A 142 MIDX does span multiple "object sources". 143 144 * Reduce implicit assumption and dependence on the_repository in the 145 object-file subsystem. 146 147 148Fixes since v2.50 149----------------- 150 151Unless otherwise noted, all the changes in 2.50.X maintenance track, 152including security updates, are included in this release. 153 154 * A memory-leak in an error code path has been plugged. 155 (merge 7082da85cb ly/commit-graph-graph-write-leakfix later to maint). 156 157 * A memory-leak in an error code path has been plugged. 158 (merge aedebdb6b9 ly/fetch-pack-leakfix later to maint). 159 160 * Some leftover references to documentation source files that no 161 longer exist, due to recent ".txt" -> ".adoc" renaming, have been 162 corrected. 163 (merge 3717a5775a jw/doc-txt-to-adoc-refs later to maint). 164 165 * "git stash -p <pathspec>" improvements. 166 (merge 468817bab2 pw/stash-p-pathspec-fixes later to maint). 167 168 * "git send-email" incremented its internal message counter when a 169 message was edited, which made logic that treats the first message 170 specially misbehave, which has been corrected. 171 (merge 2cc27b3501 ag/send-email-edit-threading-fix later to maint). 172 173 * "git stash" recorded a wrong branch name when submodules are 174 present in the current checkout, which has been corrected. 175 (merge ffb36c64f2 kj/stash-onbranch-submodule-fix later to maint). 176 177 * When asking to apply mailmap to both author and committer field 178 while showing a commit object, the field that appears later was not 179 correctly parsed and replaced, which has been corrected. 180 (merge abf94a283f sa/multi-mailmap-fix later to maint). 181 182 * "git maintenance" lacked the care "git gc" had to avoid holding 183 onto the repository lock for too long during packing refs, which 184 has been remedied. 185 (merge 1b5074e614 ps/maintenance-ref-lock later to maint). 186 187 * Avoid regexp_constraint and instead use comparison_constraint when 188 listing functions to exclude from application of coccinelle rules, 189 as spatch can be built with different regexp engine X-<. 190 (merge f2ad545813 jc/cocci-avoid-regexp-constraint later to maint). 191 192 * Updating submodules from the upstream did not work well when 193 submodule's HEAD is detached, which has been improved. 194 (merge ca62f524c1 jk/submodule-remote-lookup-cleanup later to maint). 195 196 * Remove unnecessary check from "git daemon" code. 197 (merge 0c856224d2 cb/daemon-fd-check-fix later to maint). 198 199 * Use of sysctl() system call to learn the total RAM size used on 200 BSDs has been corrected. 201 (merge 781c1cf571 cb/total-ram-bsd-fix later to maint). 202 203 * Drop FreeBSD 4 support and declare that we support only FreeBSD 12 204 or later, which has memmem() supported. 205 (merge 0392f976a7 bs/config-mak-freebsd later to maint). 206 207 * A diff-filter with negative-only specification like "git log 208 --diff-filter=d" did not trigger correctly, which has been fixed. 209 (merge 375ac087c5 jk/all-negative-diff-filter-fix later to maint). 210 211 * A failure to open the index file for writing due to conflicting 212 access did not state what went wrong, which has been corrected. 213 (merge 9455397a5c hy/read-cache-lock-error-fix later to maint). 214 215 * Tempfile removal fix in the codepath to sign commits with SSH keys. 216 (merge 4498127b04 re/ssh-sign-buffer-fix later to maint). 217 218 * Code and test clean-up around string-list API. 219 (merge 6e5b26c3ff sj/string-list later to maint). 220 221 * "git apply -N" should start from the current index and register 222 only new files, but it instead started from an empty index, which 223 has been corrected. 224 (merge 2b49d97fcb rp/apply-intent-to-add-fix later to maint). 225 226 * Leakfix with a new and a bit invasive test on pack-bitmap files. 227 (merge bfd5522e98 ly/load-bitmap-leakfix later to maint). 228 229 * "git fetch --prune" used to be O(n^2) expensive when there are many 230 refs, which has been corrected. 231 (merge 87d8d8c5d0 ph/fetch-prune-optim later to maint). 232 233 * When a ref creation at refs/heads/foo/bar fails, the files backend 234 now removes refs/heads/foo/ if the directory is otherwise not used. 235 (merge a3a7f20516 ps/refs-files-remove-empty-parent later to maint). 236 237 * "pack-objects" has been taught to avoid pointing into objects in 238 cruft packs from midx. 239 240 * "git remote" now detects remote names that overlap with each other 241 (e.g., remote nickname "outer" and "outer/inner" are used at the 242 same time), as it will lead to overlapping remote-tracking 243 branches. 244 (merge a5a727c448 jk/remote-avoid-overlapping-names later to maint). 245 246 * The gpg.program configuration variable, which names a pathname to 247 the (custom) GPG compatible program, can now be spelled with ~tilde 248 expansion. 249 (merge 7d275cd5c0 jb/gpg-program-variable-is-a-pathname later to maint). 250 251 * Our <sane-ctype.h> header file relied on that the system-supplied 252 <ctype.h> header is not later included, which would override our 253 macro definitions, but "amazon linux" broke this assumption. Fix 254 this by preemptively including <ctype.h> near the beginning of 255 <sane-ctype.h> ourselves. 256 (merge 9d3b33125f ps/sane-ctype-workaround later to maint). 257 258 * Clean-up compat/bswap.h mess. 259 (merge f4ac32c03a ss/compat-bswap-revamp later to maint). 260 261 * Meson-based build did not handle libexecdir setting correctly, 262 which has been corrected. 263 (merge 056dbe8612 rj/meson-libexecdir-fix later to maint). 264 265 * Document that we do not require "real" name when signing your 266 patches off. 267 (merge 1f0fed312a bc/contribution-under-non-real-names later to maint). 268 269 * "git commit" that concludes a conflicted merge failed to notice and remove 270 existing comment added automatically (like "# Conflicts:") when the 271 core.commentstring is set to 'auto'. 272 (merge 92b7c7c9f5 ac/auto-comment-char-fix later to maint). 273 274 * "git rebase -i" with bogus rebase.instructionFormat configuration 275 failed to produce the todo file after recording the state files, 276 leading to confused "git status"; this has been corrected. 277 (merge ade14bffd7 ow/rebase-verify-insn-fmt-before-initializing-state later to maint). 278 279 * A few file descriptors left unclosed upon program completion in a 280 few test helper programs are now closed. 281 (merge 0f1b33815b hl/test-helper-fd-close later to maint). 282 283 * Interactive prompt code did not correctly strip CRLF from the end 284 of line on Windows. 285 (merge 711a20827b js/prompt-crlf-fix later to maint). 286 287 * The config API had a set of convenience wrapper functions that 288 implicitly use the_repository instance; they have been removed and 289 inlined at the calling sites. 290 291 * "git add/etc -p" now honor the diff.context configuration variable, 292 and also they learn to honor the -U<n> command-line option. 293 (merge 2b3ae04011 lm/add-p-context later to maint). 294 295 * The case where a new submodule takes a path where there used to be a 296 completely different subproject is now dealt with a bit better than 297 before. 298 (merge 5ed8c5b465 kj/renamed-submodule later to maint). 299 300 * The deflate codepath in "git archive --format=zip" had a 301 longstanding bug coming from misuse of zlib API, which has been 302 corrected. 303 304 * Other code cleanup, docfix, build fix, etc. 305 (merge b257adb571 lo/my-first-ow-doc-update later to maint). 306 (merge 8b34b6a220 ly/sequencer-update-squash-is-fixup-only later to maint). 307 (merge 5dceb8bd05 ly/do-not-localize-bug-messages later to maint). 308 (merge 61372dd613 ly/commit-buffer-reencode-leakfix later to maint). 309 (merge 81cd1eef7d ly/pack-bitmap-root-leakfix later to maint). 310 (merge bfc9f9cc64 ly/submodule-update-failure-leakfix later to maint). 311 (merge 65dff89c6b ma/doc-diff-cc-headers later to maint). 312 (merge efb61591ee jm/bundle-uri-debug-output-to-fp later to maint). 313 (merge a3d278bb64 ly/prepare-show-merge-leakfix later to maint). 314 (merge 1fde1c5daf ac/preload-index-wo-the-repository later to maint). 315 (merge 855cfc65ae rm/t2400-modernize later to maint). 316 (merge 2939494284 ly/run-builtin-use-passed-in-repo later to maint). 317 (merge ff73f375bb jg/mailinfo-leakfix later to maint). 318 (merge 996f14c02b jj/doc-branch-markup-fix later to maint). 319 (merge 1e77de1864 cb/ci-freebsd-update-to-14.3 later to maint). 320 (merge b0e9d25865 jk/fix-leak-send-pack later to maint). 321 (merge f3a9558c8c bs/remote-helpers-doc-markup-fix later to maint). 322 (merge c4e9775c60 kh/doc-config-subcommands later to maint). 323 (merge de404249ab ps/perlless-test-fixes later to maint). 324 (merge 953049eed8 ts/merge-orig-head-doc-fix later to maint). 325 (merge 0c83bbc704 rj/freebsd-sysinfo-build-fix later to maint). 326 (merge ad7780b38f ps/doc-pack-refs-auto-with-files-backend-fix later to maint). 327 (merge f4fa8a3687 rh/doc-glob-pathspec-fix later to maint). 328 (merge b27be108c8 ja/doc-git-log-markup later to maint). 329 (merge 14d7583beb pw/config-kvi-remove-path later to maint). 330 (merge f31abb421d jc/do-not-scan-argv-without-parsing later to maint). 331 (merge 26552cb62a jk/unleak-reflog-expire-entry later to maint). 332 (merge 339d95fda9 jc/ci-print-test-failures-fix later to maint). 333 (merge 8c3add51a8 cb/meson-avoid-broken-macos-pcre2 later to maint). 334 (merge 5247da07b8 ps/meson-clar-decls-fix later to maint). 335 (merge f3ef347bb2 ch/t7450-recursive-clone-test-fix later to maint). 336 (merge 4ac3302a1a jc/doc-release-vs-clear later to maint). 337 (merge 3bdd897413 ms/meson-with-ancient-git-wo-ls-files-dedup later to maint). 338 (merge cca758d324 kh/doc-fast-import-historical later to maint). 339 (merge 9b0781196a jc/test-hashmap-is-still-here later to maint). 340 (merge 1bad05bacc jk/revert-squelch-compiler-warning later to maint). 341 (merge 3a7e783d9c dl/squelch-maybe-uninitialized later to maint).