Git fork
at reftables-rust 320 lines 13 kB view raw
1Git v2.40 Release Notes 2======================= 3 4UI, Workflows & Features 5 6 * "merge-tree" learns a new `--merge-base` option. 7 8 * "git jump" (in contrib/) learned to present the "quickfix list" to 9 its standard output (instead of letting it consumed by the editor 10 it invokes), and learned to also drive emacs/emacsclient. 11 12 * "git var UNKNOWN_VARIABLE" and "git var VARIABLE" with the variable 13 given an empty value used to behave identically. Now the latter 14 just gives an empty output, while the former still gives an error 15 message. 16 17 * Introduce a case insensitive mode to the Bash completion helpers. 18 19 * The advice message given by "git status" when it takes long time to 20 enumerate untracked paths has been updated. 21 22 * Just like "git var GIT_EDITOR" abstracts the complex logic to 23 choose which editor gets used behind it, "git var" now give support 24 to GIT_SEQUENCE_EDITOR. 25 26 * "git format-patch" learned to honor format.mboxrd even when sending 27 patches to the standard output stream, 28 29 * 'cat-file' gains mailmap support for its '--batch-check' and '-s' 30 options. 31 32 * Conditionally skip the pre-applypatch and applypatch-msg hooks when 33 applying patches with 'git am'. 34 35 * Introduce an optional configuration to allow the trailing hash that 36 protects the index file from bit flipping. 37 38 * "git check-attr" learned to take an optional tree-ish to read the 39 .gitattributes file from. 40 41 * "scalar" learned to give progress bar. 42 43 * "grep -P" learned to use Unicode Character Property to grok 44 character classes when processing \b and \w etc. 45 46 * "git rebase" often ignored incompatible options instead of 47 complaining, which has been corrected. 48 49 * "scalar" warns but continues when its periodic maintenance 50 feature cannot be enabled. 51 52 * The bundle-URI subsystem adds support for creation-token heuristics 53 to help incremental fetches. 54 55 * Userdiff regexp update for Java language. 56 57 * "git fetch --jobs=0" used to hit a BUG(), which has been corrected 58 to use the available CPUs. 59 60 * An invalid label or ref in the "rebase -i" todo file used to 61 trigger an runtime error. SUch an error is now diagnosed while the 62 todo file is parsed. 63 64 * The "diff" drivers specified by the "diff" attribute attached to 65 paths can now specify which algorithm (e.g. histogram) to use. 66 67 * "git range-diff" learned --abbrev=<num> option. 68 69 * "git archive HEAD^{tree}" records the paths with the current 70 timestamp in the archive, making it harder to obtain a stable 71 output. The command learned the --mtime option to specify an 72 arbitrary timestamp (e.g. --mtime="@0 +0000" for the epoch). 73 74 * The credential subsystem learned that a password may have an 75 explicit expiration. 76 77 * The format.attach configuration variable lacked a way to override a 78 value defined in a lower-priority configuration file (e.g. the 79 system one) by redefining it in a higher-priority configuration 80 file. Now, setting format.attach to an empty string means show the 81 patch inline in the e-mail message, without using MIME attachment. 82 83 This is a backward incompatible change. 84 85 86Performance, Internal Implementation, Development Support etc. 87 88 * `git bisect` becomes a builtin. 89 90 * The pack-bitmap machinery is taught to log the paths of redundant 91 bitmap(s) to trace2 instead of stderr. 92 93 * Use the SHA1DC implementation on macOS, just like other platforms, 94 by default. 95 96 * Even in a repository with promisor remote, it is useless to 97 attempt to lazily attempt fetching an object that is expected to be 98 commit, because no "filter" mode omits commit objects. Take 99 advantage of this assumption to fail fast on errors. 100 101 * Stop using "git --super-prefix" and narrow the scope of its use to 102 the submodule--helper. 103 104 * Stop running win+VS build by default. 105 106 * CI updates. We probably want a clean-up to move the long shell 107 script embedded in yaml file into a separate file, but that can 108 come later. 109 110 * Use `git diff --no-index` as a test_cmp on Windows. 111 112 We'd probably need to revisit "do we really want to, and have to, 113 lose CRLF vs LF?" later, at which time we may be able to further 114 clean this up by replacing "git diff --no-index" with "diff -u". 115 116 * Avoid unnecessary builds in CI, with settings configured in 117 ci-config. 118 119 * Plug leaks in sequencer subsystem and its users. 120 121 * In-tree .gitattributes update to match the way we recommend our 122 users to mark a file as text. 123 (merge 1f34e0cd3d po/attributes-text later to maint). 124 125 * Finally retire the scripted "git add -p/-i" implementation and have 126 everybody use the one reimplemented in C. 127 128 129Fixes since v2.39 130----------------- 131 132 * Various leak fixes. 133 134 * Fix a bug where `pack-objects` would not respect multiple `--filter` 135 arguments when invoked directly. 136 (merge d4f7036887 rs/multi-filter-args later to maint). 137 138 * Make fsmonitor more robust to avoid the flakiness seen in t7527. 139 (merge 6692d45477 jh/t7527-unflake-by-forcing-cookie later to maint). 140 141 * Stop using deprecated macOS API in fsmonitor. 142 (merge b0226007f0 jh/fsmonitor-darwin-modernize later to maint). 143 144 * Redefining system functions for a few functions did not follow our 145 usual "implement git_foo() and #define foo(args) git_foo(args)" 146 pattern, which has broken build for some folks. 147 148 * The way the diff machinery prepares the options array for the 149 parse_options API has been refactored to avoid resource leaks. 150 (merge 189e97bc4b rs/diff-parseopts later to maint). 151 152 * Correct pthread API usage. 153 (merge 786e67611d sx/pthread-error-check-fix later to maint). 154 155 * The code to auto-correct a misspelt subcommand unnecessarily called 156 into git_default_config() from the early config codepath, which was 157 a no-no. This has bee corrected. 158 (merge 0918d08887 sg/help-autocorrect-config-fix later to maint). 159 160 * "git http-fetch" (which is rarely used) forgot to identify itself 161 in the trace2 output. 162 (merge 7abb43cbc8 jt/http-fetch-trace2-report-name later to maint). 163 164 * The output from "git diff --stat" on an unmerged path lost the 165 terminating LF in Git 2.39, which has been corrected. 166 (merge 209d9cb011 pg/diff-stat-unmerged-regression-fix later to maint). 167 168 * "git pull -v --recurse-submodules" attempted to pass "-v" down to 169 underlying "git submodule update", which did not understand the 170 request and barfed, which has been corrected. 171 (merge 6f65f84766 ss/pull-v-recurse-fix later to maint). 172 173 * When given a pattern that matches an empty string at the end of a 174 line, the code to parse the "git diff" line-ranges fell into an 175 infinite loop, which has been corrected. 176 177 * Fix the sequence to fsync $GIT_DIR/packed-refs file that forgot to 178 flush its output to the disk.. 179 180 * Fix to a small regression in 2.38 days. 181 182 * "git diff --relative" did not mix well with "git diff --ext-diff", 183 which has been corrected. 184 185 * The logic to see if we are using the "cone" mode by checking the 186 sparsity patterns has been tightened to avoid mistaking a pattern 187 that names a single file as specifying a cone. 188 189 * Deal with a few deprecation warning from cURL library. 190 191 * Doc update for environment variables set when hooks are invoked. 192 193 * Document ORIG_HEAD a bit more. 194 195 * "git ls-tree --format='%(path) %(path)' $tree $path" showed the 196 path three times, which has been corrected. 197 198 * Remove "git env--helper" and demote it to a test-tool subcommand. 199 (merge 4a1baacd46 ab/test-env-helper later to maint). 200 201 * Newer regex library macOS stopped enabling GNU-like enhanced BRE, 202 where '\(A\|B\)' works as alternation, unless explicitly asked with 203 the REG_ENHANCED flag. "git grep" now can be compiled to do so, to 204 retain the old behaviour. 205 206 * Pthread emulation on Win32 leaked thread handle when a thread is 207 joined. 208 (merge 238a9dfe86 sk/win32-close-handle-upon-pthread-join later to maint). 209 210 * "git send-email -v 3" used to be expanded to "git send-email 211 --validate 3" when the user meant to pass them down to 212 "format-patch", which has been corrected. 213 (merge 8774aa56ad km/send-email-with-v-reroll-count later to maint). 214 215 * Document that "branch -f <branch>" disables only the safety to 216 avoid recreating an existing branch. 217 218 * "git fetch <group>", when "<group>" of remotes lists the same 219 remote twice, unnecessarily failed when parallel fetching was 220 enabled, which has been corrected. 221 (merge 06a668cb90 cw/fetch-remote-group-with-duplication later to maint). 222 223 * Clarify how "checkout -b/-B" and "git branch [-f]" are similar but 224 different in the documentation. 225 226 * "git hash-object" now checks that the resulting object is well 227 formed with the same code as "git fsck". 228 (merge 8e4309038f jk/hash-object-fsck later to maint). 229 230 * Improve the error message given when private key is not loaded in 231 the ssh agent in the codepath to sign with an ssh key. 232 (merge dce7b31126 as/ssh-signing-improve-key-missing-error later to maint). 233 234 * Adjust "git request-pull" to strip embedded signature from signed 235 tags to notice non-PGP signatures. 236 (merge a9cad02538 gm/request-pull-with-non-pgp-signed-tags later to maint). 237 238 * Remove support for MSys, which now lags way behind MSys2. 239 (merge 2987407f3c hj/remove-msys-support later to maint). 240 241 * Fix use of CreateThread() API call made early in the windows 242 start-up code. 243 (merge 592bcab61b sk/winansi-createthread-fix later to maint). 244 245 * "git pack-objects" learned to release delta-island bitmap data when 246 it is done using it, saving peak heap memory usage. 247 (merge 647982bb71 ew/free-island-marks later to maint). 248 249 * In an environment where dynamically generated code is prohibited to 250 run (e.g. SELinux), failure to JIT pcre patterns is expected. Fall 251 back to interpreted execution in such a case. 252 (merge 50b6ad55b0 cb/grep-fallback-failing-jit later to maint). 253 254 * "git name-rev" heuristics update. 255 (merge b2182a8730 en/name-rev-make-taggerdate-much-less-important later to maint). 256 257 * Remove more remaining uses of macros that relies on the_index 258 singleton instance without explicitly spelling it out. 259 260 * Remove unnecessary explicit sizing of strbuf. 261 (merge 93ea118bed rs/cache-tree-strbuf-growth-fix later to maint). 262 263 * Doc update. 264 (merge d9ec3b0dc0 jk/doc-ls-remote-matching later to maint). 265 266 * Error messages given upon a signature verification failure used to 267 discard the errors from underlying gpg program, which has been 268 corrected. 269 (merge ad6b320756 js/gpg-errors later to maint). 270 271 * Update --date=default documentation. 272 (merge 9deef088ae rd/doc-default-date-format later to maint). 273 274 * A test helper had a single write(2) of 256kB, which was too big for 275 some platforms (e.g. NonStop), which has been corrected by using 276 xwrite() wrapper appropriately. 277 (merge 58eab6ff13 jc/genzeros-avoid-raw-write later to maint). 278 279 * sscanf(3) used in "git symbolic-ref --short" implementation found 280 to be not working reliably on macOS in UTF-8 locales. Rewrite the 281 code to avoid sscanf() altogether to work it around. 282 (merge 613bef56b8 jk/shorten-unambiguous-ref-wo-sscanf later to maint). 283 284 * Various fix-ups on HTTP tests. 285 (merge 8f2146dbf1 jk/http-test-fixes later to maint). 286 287 * Fixes to code that parses the todo file used in "rebase -i". 288 (merge 666b6e1135 pw/rebase-i-parse-fix later to maint). 289 290 * Test library clean-up. 291 (merge c600a91c94 ar/test-lib-remove-stale-comment later to maint). 292 293 * Other code cleanup, docfix, build fix, etc. 294 (merge 4eb1ccecd4 dh/mingw-ownership-check-typofix later to maint). 295 (merge f95526419b ar/typofix-gitattributes-doc later to maint). 296 (merge 27875aeec9 km/doc-branch-start-point later to maint). 297 (merge 35c194dc57 es/t1509-root-fixes later to maint). 298 (merge 7b341645e3 pw/ci-print-failure-name-fix later to maint). 299 (merge bcb71d45bf jx/t1301-updates later to maint). 300 (merge ebdc46c242 jc/doc-diff-patch.txt later to maint). 301 (merge a87a20cbb4 ar/test-cleanup later to maint). 302 (merge f5156f1885 ar/bisect-doc-update later to maint). 303 (merge fca2d86c97 jk/interop-error later to maint). 304 (merge cf4936ed74 tl/ls-tree-code-clean-up later to maint). 305 (merge dcb47e52b0 en/t6426-todo-cleanup later to maint). 306 (merge 5b8db44bdd jc/format-patch-v-unleak later to maint). 307 (merge 590b636737 jk/hash-object-literally-fd-leak later to maint). 308 (merge 5458ba0a4d tb/t0003-invoke-dd-more-portably later to maint). 309 (merge 70661d288b ar/markup-em-dash later to maint). 310 (merge e750951e74 en/ls-files-doc-update later to maint). 311 (merge 4f542975d1 mh/doc-credential-cache-only-in-core later to maint). 312 (merge 3a2ebaebc7 gc/index-format-doc later to maint). 313 (merge b08edf709d jk/httpd-test-updates later to maint). 314 (merge d85e9448dd wl/new-command-doc later to maint). 315 (merge d912a603ed kf/t5000-modernise later to maint). 316 (merge e65b868d07 rs/size-t-fixes later to maint). 317 (merge 3eb1e1ca9a ab/config-h-remove-unused later to maint). 318 (merge d390e08076 cw/doc-pushurl-vs-url later to maint). 319 (merge 567342fc77 rs/ctype-test later to maint). 320 (merge d35d8f2e7a ap/t2015-style-update later to maint).