Git fork

Sync with Git 2.51.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>

+45 -54
+45
Documentation/RelNotes/2.51.2.adoc
···
··· 1 + Git 2.51.2 Release Notes 2 + ======================== 3 + 4 + In addition to fixes for an unfortunate regression introduced in Git 5 + 2.51.1 that caused "git diff --quiet -w" to be not so quiet when there 6 + are additions, deletions and conflicts, this maintenance release merges 7 + more fixes/improvements that have landed on the master front, primarily 8 + to make the CI part of the system a bit more robust. 9 + 10 + 11 + Fixes since Git 2.51.1 12 + ---------------------- 13 + 14 + * Recently we attempted to improve "git diff -w --quiet" and friends 15 + to handle cases where patch output would be suppressed, but it 16 + introduced a bug that emits unnecessary output, which has been 17 + corrected. 18 + 19 + * The code to squelch output from "git diff -w --name-status" 20 + etc. for paths that "git diff -w -p" would have stayed silent 21 + leaked output from dry-run patch generation, which has been 22 + corrected. 23 + 24 + * Windows "real-time monitoring" interferes with the execution of 25 + tests and affects negatively in both correctness and performance, 26 + which has been disabled in Gitlab CI. 27 + 28 + * An earlier addition to "git diff --no-index A B" to limit the 29 + output with pathspec after the two directories misbehaved when 30 + these directories were given with a trailing slash, which has been 31 + corrected. 32 + 33 + * The "--short" option of "git status" that meant output for humans 34 + and "-z" option to show NUL delimited output format did not mix 35 + well, and colored some but not all things. The command has been 36 + updated to color all elements consistently in such a case. 37 + 38 + * Unicode width table update. 39 + 40 + * Recent OpenSSH creates the Unix domain socket to communicate with 41 + ssh-agent under $HOME instead of /tmp, which causes our test to 42 + fail doe to overly long pathname in our test environment, which has 43 + been worked around by using "ssh-agent -T". 44 + 45 + Also contains various documentation updates, code cleanups and minor fixups.
-54
Documentation/RelNotes/2.52.0.adoc
··· 104 105 * Adjust to the way newer versions of cURL selectively enable tracing 106 options, so that our tests can continue to work. 107 - (merge 1b5a6bfff3 jk/curl-global-trace-components later to maint). 108 109 * The clear_alloc_state() API function was not fully clearing the 110 structure for reuse, but since nobody reuses it, replace it with a ··· 147 148 * During interactive rebase, using 'drop' on a merge commit lead to 149 an error, which was incorrect. 150 - (merge 4d491ade8f js/rebase-i-allow-drop-on-a-merge later to maint). 151 152 * "git refs migrate" to migrate the reflog entries from a refs 153 backend to another had a handful of bugs squashed. 154 - (merge 465eff81de ps/reflog-migrate-fixes later to maint). 155 156 * "git remote rename origin upstream" failed to move origin/HEAD to 157 upstream/HEAD when origin/HEAD is unborn and performed other ··· 164 * "git push" had a code path that led to BUG() but it should have 165 been a die(), as it is a response to a usual but invalid end-user 166 action to attempt pushing an object that does not exist. 167 - (merge dfbfc2221b dl/push-missing-object-error later to maint). 168 169 * Various bugs about rename handling in "ort" merge strategy have 170 been fixed. 171 - (merge f6ecb603ff en/ort-rename-fixes later to maint). 172 173 * "git jump" (in contrib/) fails to parse the diff header correctly 174 when a file has a space in its name, which has been corrected. ··· 179 the prefix from the output, and oddballs like "-" (stdin) did not 180 work correctly because of it. Correct the set-up by undoing what 181 the set-up sequence did to cwd and prefix. 182 - (merge e1d3d61a45 jc/diff-no-index-in-subdir later to maint). 183 184 * Various options to "git diff" that makes comparison ignore certain 185 aspects of the differences (like "space changes are ignored", ··· 188 (merge b55e6d36eb ly/diff-name-only-with-diff-from-content later to maint). 189 190 * The above caused regressions, which has been corrected. 191 - (merge 623f7af2 jk/diff-from-contents-fix later to maint). 192 - (merge 3da4413d jc/diff-from-contents-fix later to maint). 193 194 * Documentation for "git rebase" has been updated. 195 (merge 3f7f2b0359 je/doc-rebase later to maint). ··· 197 * The start_delayed_progress() function in the progress eye-candy API 198 did not clear its internal state, making an initial delay value 199 larger than 1 second ineffective, which has been corrected. 200 - (merge 457534d041 js/progress-delay-fix later to maint). 201 202 * The compatObjectFormat extension is used to hide an incomplete 203 feature that is not yet usable for any purpose other than 204 developing the feature further. Document it as such to discourage 205 its use by mere mortals. 206 - (merge 716d905792 bc/doc-compat-object-format-not-working later to maint). 207 208 * "git log -L..." compared trees of multiple parents with the tree of the 209 merge result in an unnecessarily inefficient way. ··· 213 repository, especially a partially cloned one, "git fetch" may 214 mistakenly think some objects we do have are missing, which has 215 been corrected. 216 - (merge 8f32a5a6c0 jk/fetch-check-graph-objects-fix later to maint). 217 218 * "git fetch" can clobber a symref that is dangling when the 219 remote-tracking HEAD is set to auto update, which has been ··· 225 226 * Manual page for "gitk" is updated with the current maintainer's 227 name. 228 - (merge bcb20dda83 js/doc-gitk-history later to maint). 229 230 * Update the instructions for using GGG in the MyFirstContribution 231 document to say that a GitHub PR could be made against `git/git` 232 instead of `gitgitgadget/git`. 233 - (merge 37001cdbc4 ds/doc-ggg-pr-fork-clarify later to maint). 234 235 * Makefile tried to run multiple "cargo build" which would not work 236 very well; serialize their execution to work around this problem. 237 - (merge 0eeacde50e da/cargo-serialize later to maint). 238 239 * "git repack --path-walk" lost objects in some corner cases, which 240 has been corrected. 241 - (merge 93afe9b060 ds/path-walk-repack-fix later to maint). 242 243 * "git ls-files <pathspec>..." should not necessarily have to expand 244 the index fully if a sparsified directory is excluded by the ··· 249 * Windows "real-time monitoring" interferes with the execution of 250 tests and affects negatively in both correctness and performance, 251 which has been disabled in Gitlab CI. 252 - (merge 608cf5b793 ps/gitlab-ci-disable-windows-monitoring later to maint). 253 254 * A broken or malicious "git fetch" can say that it has the same 255 object for many many times, and the upload-pack serving it can 256 exhaust memory storing them redundantly, which has been corrected. 257 - (merge 88a2dc68c8 ps/upload-pack-oom-protection later to maint). 258 259 * A corner case bug in "git log -L..." has been corrected. 260 - (merge e3106998ff sg/line-log-boundary-fixes later to maint). 261 262 * "git rev-parse --short" and friends failed to disambiguate two 263 objects with object names that share common prefix longer than 32 ··· 267 * Some among "git add -p" and friends ignored color.diff and/or 268 color.ui configuration variables, which is an old regression, which 269 has been corrected. 270 - (merge 1092cd6435 jk/add-i-color later to maint). 271 272 * "git subtree" (in contrib/) did not work correctly when splitting 273 squashed subtrees, which has been improved. ··· 283 * "git rebase -i" failed to clean-up the commit log message when the 284 command commits the final one in a chain of "fixup" commands, which 285 has been corrected. 286 - (merge 82a0a73e15 pw/rebase-i-cleanup-fix later to maint). 287 288 * There are double frees and leaks around setup_revisions() API used 289 in "git stash show", which has been fixed, and setup_revisions() ··· 294 * Deal more gracefully with directory / file conflicts when the files 295 backend is used for ref storage, by failing only the ones that are 296 involved in the conflict while allowing others. 297 - (merge 948b2ab0d8 kn/refs-files-case-insensitive later to maint). 298 299 * "git last-modified" operating in non-recursive mode used to trigger 300 a BUG(), which has been corrected. ··· 307 * The "do you still use it?" message given by a command that is 308 deeply deprecated and allow us to suggest alternatives has been 309 updated. 310 - (merge 54a60e5b38 kh/you-still-use-whatchanged-fix later to maint). 311 312 * Clang-format update to let our control macros be formatted the way we 313 had them traditionally, e.g., "for_each_string_list_item()" without 314 space before the parentheses. 315 - (merge 3721541d35 jt/clang-format-foreach-wo-space-before-parenthesis later to maint). 316 317 * A few places where a size_t value was cast to curl_off_t without 318 checking has been updated to use the existing helper function. 319 - (merge ecc5749578 js/curl-off-t-fixes later to maint). 320 321 * "git reflog write" did not honor the configured user.name/email 322 which has been corrected. ··· 328 environment, but Ubuntu replaced with "sudo" with an implementation 329 that lacks the feature. Work this around by reinstalling the 330 original version. 331 - (merge fddb484255 ps/ci-avoid-broken-sudo-on-ubuntu later to maint). 332 333 * The reftable backend learned to sanity check its on-disk data more 334 carefully. ··· 355 output with pathspec after the two directories misbehaved when 356 these directories were given with a trailing slash, which has been 357 corrected. 358 - (merge c0bec06cfe jk/diff-no-index-with-pathspec-fix later to maint). 359 360 * The "--short" option of "git status" that meant output for humans 361 and "-z" option to show NUL delimited output format did not mix 362 well, and colored some but not all things. The command has been 363 updated to color all elements consistently in such a case. 364 - (merge 50927f4f68 jk/status-z-short-fix later to maint). 365 366 * Unicode width table update. 367 - (merge 330a54099e tb/unicode-width-table-17 later to maint). 368 369 * GPG signing test set-up has been broken for a year, which has been 370 corrected. ··· 374 ssh-agent under $HOME instead of /tmp, which causes our test to 375 fail doe to overly long pathname in our test environment, which has 376 been worked around by using "ssh-agent -T". 377 - (merge b7fb2194b9 ps/t7528-ssh-agent-uds-workaround later to maint). 378 379 * Other code cleanup, docfix, build fix, etc. 380 - (merge 823d537fa7 kh/doc-git-log-markup-fix later to maint). 381 - (merge cf7efa4f33 rj/t6137-cygwin-fix later to maint). 382 (merge 529a60a885 ua/t1517-short-help-tests later to maint). 383 (merge 22d421fed9 ac/deglobal-fmt-merge-log-config later to maint). 384 - (merge 741f36c7d9 kr/clone-synopsis-fix later to maint). 385 (merge a60203a015 dk/t7005-editor-updates later to maint). 386 - (merge 7d4a5fef7d ds/doc-count-objects-fix later to maint). 387 (merge 16684b6fae ps/reftable-libgit2-cleanup later to maint). 388 - (merge f38786baa7 ja/asciidoc-doctor-verbatim-fixes later to maint). 389 - (merge 374579c6d4 kh/doc-interpret-trailers-markup-fix later to maint). 390 - (merge 44dce6541c kh/doc-config-typofix later to maint). 391 - (merge 785628b173 js/doc-sending-patch-via-thunderbird later to maint). 392 (merge e5c27bd3d8 je/doc-add later to maint). 393 (merge 13296ac909 ps/object-store-midx-dedup-info later to maint). 394 - (merge 2f4bf83ffc km/alias-doc-markup-fix later to maint). 395 - (merge b0d97aac19 kh/doc-markup-fixes later to maint). 396 (merge f9a6705d9a tc/t0450-harden later to maint). 397 - (merge c25651aefd ds/midx-write-fixes later to maint). 398 - (merge 069c15d256 rs/object-name-extend-abbrev-len-update later to maint). 399 - (merge bf5c224537 mm/worktree-doc-typofix later to maint). 400 - (merge 31397bc4f7 kh/doc-fast-import-markup-fix later to maint). 401 - (merge ac7096723b jc/doc-includeif-hasconfig-remote-url-fix later to maint). 402 - (merge fafc9b08b8 ag/doc-sendmail-gmail-example-update later to maint). 403 (merge a66fc22bf9 rs/get-oid-with-flags-cleanup later to maint). 404 - (merge e1d062e8ba ps/odb-clean-stale-wrappers later to maint). 405 - (merge fdd21ba116 mh/doc-credential-url-prefix later to maint). 406 - (merge 1c573a3451 en/doc-merge-tree-describe-merge-base later to maint). 407 - (merge 84a6bf7965 ja/doc-markup-attached-paragraph-fix later to maint). 408 - (merge 399694384b kh/doc-patch-id-markup-fix later to maint). 409 (merge 15b8abde07 js/mingw-includes-cleanup later to maint). 410 - (merge 3860985105 js/unreachable-workaround-for-no-symlink-head later to maint). 411 - (merge b3ac6e737d kh/doc-continued-paragraph-fix later to maint). 412 (merge 2cebca0582 tb/cat-file-objectmode-update later to maint). 413 - (merge 96978d7545 js/ci-github-actions-update later to maint). 414 - (merge 0c4f1346ca so/t2401-use-test-path-helpers later to maint).
··· 104 105 * Adjust to the way newer versions of cURL selectively enable tracing 106 options, so that our tests can continue to work. 107 108 * The clear_alloc_state() API function was not fully clearing the 109 structure for reuse, but since nobody reuses it, replace it with a ··· 146 147 * During interactive rebase, using 'drop' on a merge commit lead to 148 an error, which was incorrect. 149 150 * "git refs migrate" to migrate the reflog entries from a refs 151 backend to another had a handful of bugs squashed. 152 153 * "git remote rename origin upstream" failed to move origin/HEAD to 154 upstream/HEAD when origin/HEAD is unborn and performed other ··· 161 * "git push" had a code path that led to BUG() but it should have 162 been a die(), as it is a response to a usual but invalid end-user 163 action to attempt pushing an object that does not exist. 164 165 * Various bugs about rename handling in "ort" merge strategy have 166 been fixed. 167 168 * "git jump" (in contrib/) fails to parse the diff header correctly 169 when a file has a space in its name, which has been corrected. ··· 174 the prefix from the output, and oddballs like "-" (stdin) did not 175 work correctly because of it. Correct the set-up by undoing what 176 the set-up sequence did to cwd and prefix. 177 178 * Various options to "git diff" that makes comparison ignore certain 179 aspects of the differences (like "space changes are ignored", ··· 182 (merge b55e6d36eb ly/diff-name-only-with-diff-from-content later to maint). 183 184 * The above caused regressions, which has been corrected. 185 186 * Documentation for "git rebase" has been updated. 187 (merge 3f7f2b0359 je/doc-rebase later to maint). ··· 189 * The start_delayed_progress() function in the progress eye-candy API 190 did not clear its internal state, making an initial delay value 191 larger than 1 second ineffective, which has been corrected. 192 193 * The compatObjectFormat extension is used to hide an incomplete 194 feature that is not yet usable for any purpose other than 195 developing the feature further. Document it as such to discourage 196 its use by mere mortals. 197 198 * "git log -L..." compared trees of multiple parents with the tree of the 199 merge result in an unnecessarily inefficient way. ··· 203 repository, especially a partially cloned one, "git fetch" may 204 mistakenly think some objects we do have are missing, which has 205 been corrected. 206 207 * "git fetch" can clobber a symref that is dangling when the 208 remote-tracking HEAD is set to auto update, which has been ··· 214 215 * Manual page for "gitk" is updated with the current maintainer's 216 name. 217 218 * Update the instructions for using GGG in the MyFirstContribution 219 document to say that a GitHub PR could be made against `git/git` 220 instead of `gitgitgadget/git`. 221 222 * Makefile tried to run multiple "cargo build" which would not work 223 very well; serialize their execution to work around this problem. 224 225 * "git repack --path-walk" lost objects in some corner cases, which 226 has been corrected. 227 228 * "git ls-files <pathspec>..." should not necessarily have to expand 229 the index fully if a sparsified directory is excluded by the ··· 234 * Windows "real-time monitoring" interferes with the execution of 235 tests and affects negatively in both correctness and performance, 236 which has been disabled in Gitlab CI. 237 238 * A broken or malicious "git fetch" can say that it has the same 239 object for many many times, and the upload-pack serving it can 240 exhaust memory storing them redundantly, which has been corrected. 241 242 * A corner case bug in "git log -L..." has been corrected. 243 244 * "git rev-parse --short" and friends failed to disambiguate two 245 objects with object names that share common prefix longer than 32 ··· 249 * Some among "git add -p" and friends ignored color.diff and/or 250 color.ui configuration variables, which is an old regression, which 251 has been corrected. 252 253 * "git subtree" (in contrib/) did not work correctly when splitting 254 squashed subtrees, which has been improved. ··· 264 * "git rebase -i" failed to clean-up the commit log message when the 265 command commits the final one in a chain of "fixup" commands, which 266 has been corrected. 267 268 * There are double frees and leaks around setup_revisions() API used 269 in "git stash show", which has been fixed, and setup_revisions() ··· 274 * Deal more gracefully with directory / file conflicts when the files 275 backend is used for ref storage, by failing only the ones that are 276 involved in the conflict while allowing others. 277 278 * "git last-modified" operating in non-recursive mode used to trigger 279 a BUG(), which has been corrected. ··· 286 * The "do you still use it?" message given by a command that is 287 deeply deprecated and allow us to suggest alternatives has been 288 updated. 289 290 * Clang-format update to let our control macros be formatted the way we 291 had them traditionally, e.g., "for_each_string_list_item()" without 292 space before the parentheses. 293 294 * A few places where a size_t value was cast to curl_off_t without 295 checking has been updated to use the existing helper function. 296 297 * "git reflog write" did not honor the configured user.name/email 298 which has been corrected. ··· 304 environment, but Ubuntu replaced with "sudo" with an implementation 305 that lacks the feature. Work this around by reinstalling the 306 original version. 307 308 * The reftable backend learned to sanity check its on-disk data more 309 carefully. ··· 330 output with pathspec after the two directories misbehaved when 331 these directories were given with a trailing slash, which has been 332 corrected. 333 334 * The "--short" option of "git status" that meant output for humans 335 and "-z" option to show NUL delimited output format did not mix 336 well, and colored some but not all things. The command has been 337 updated to color all elements consistently in such a case. 338 339 * Unicode width table update. 340 341 * GPG signing test set-up has been broken for a year, which has been 342 corrected. ··· 346 ssh-agent under $HOME instead of /tmp, which causes our test to 347 fail doe to overly long pathname in our test environment, which has 348 been worked around by using "ssh-agent -T". 349 350 * Other code cleanup, docfix, build fix, etc. 351 (merge 529a60a885 ua/t1517-short-help-tests later to maint). 352 (merge 22d421fed9 ac/deglobal-fmt-merge-log-config later to maint). 353 (merge a60203a015 dk/t7005-editor-updates later to maint). 354 (merge 16684b6fae ps/reftable-libgit2-cleanup later to maint). 355 (merge e5c27bd3d8 je/doc-add later to maint). 356 (merge 13296ac909 ps/object-store-midx-dedup-info later to maint). 357 (merge f9a6705d9a tc/t0450-harden later to maint). 358 (merge a66fc22bf9 rs/get-oid-with-flags-cleanup later to maint). 359 (merge 15b8abde07 js/mingw-includes-cleanup later to maint). 360 (merge 2cebca0582 tb/cat-file-objectmode-update later to maint).