···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
···104105 * 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).
108109 * The clear_alloc_state() API function was not fully clearing the
110 structure for reuse, but since nobody reuses it, replace it with a
···147148 * 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).
151152 * "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).
155156 * "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).
168169 * Various bugs about rename handling in "ort" merge strategy have
170 been fixed.
171- (merge f6ecb603ff en/ort-rename-fixes later to maint).
172173 * "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).
183184 * 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).
189190 * 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).
193194 * 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).
201202 * 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).
207208 * "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).
217218 * "git fetch" can clobber a symref that is dangling when the
219 remote-tracking HEAD is set to auto update, which has been
···225226 * Manual page for "gitk" is updated with the current maintainer's
227 name.
228- (merge bcb20dda83 js/doc-gitk-history later to maint).
229230 * 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).
234235 * 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).
238239 * "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).
242243 * "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).
253254 * 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).
258259 * A corner case bug in "git log -L..." has been corrected.
260- (merge e3106998ff sg/line-log-boundary-fixes later to maint).
261262 * "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).
271272 * "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).
287288 * 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).
298299 * "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).
311312 * 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).
316317 * 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).
320321 * "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).
332333 * 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).
359360 * 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).
365366 * Unicode width table update.
367- (merge 330a54099e tb/unicode-width-table-17 later to maint).
368369 * 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).
378379 * 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).
···104105 * Adjust to the way newer versions of cURL selectively enable tracing
106 options, so that our tests can continue to work.
0107108 * The clear_alloc_state() API function was not fully clearing the
109 structure for reuse, but since nobody reuses it, replace it with a
···146147 * During interactive rebase, using 'drop' on a merge commit lead to
148 an error, which was incorrect.
0149150 * "git refs migrate" to migrate the reflog entries from a refs
151 backend to another had a handful of bugs squashed.
0152153 * "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.
0164165 * Various bugs about rename handling in "ort" merge strategy have
166 been fixed.
0167168 * "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.
0177178 * 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).
183184 * The above caused regressions, which has been corrected.
00185186 * 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.
0192193 * 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.
0197198 * "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.
0206207 * "git fetch" can clobber a symref that is dangling when the
208 remote-tracking HEAD is set to auto update, which has been
···214215 * Manual page for "gitk" is updated with the current maintainer's
216 name.
0217218 * 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`.
0221222 * Makefile tried to run multiple "cargo build" which would not work
223 very well; serialize their execution to work around this problem.
0224225 * "git repack --path-walk" lost objects in some corner cases, which
226 has been corrected.
0227228 * "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.
0237238 * 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.
0241242 * A corner case bug in "git log -L..." has been corrected.
0243244 * "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.
0252253 * "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.
0267268 * 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.
0277278 * "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.
0289290 * 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.
0293294 * 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.
0296297 * "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.
0307308 * 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.
0333334 * 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.
0338339 * Unicode width table update.
0340341 * 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".
0349350 * Other code cleanup, docfix, build fix, etc.
00351 (merge 529a60a885 ua/t1517-short-help-tests later to maint).
352 (merge 22d421fed9 ac/deglobal-fmt-merge-log-config later to maint).
0353 (merge a60203a015 dk/t7005-editor-updates later to maint).
0354 (merge 16684b6fae ps/reftable-libgit2-cleanup later to maint).
0000355 (merge e5c27bd3d8 je/doc-add later to maint).
356 (merge 13296ac909 ps/object-store-midx-dedup-info later to maint).
00357 (merge f9a6705d9a tc/t0450-harden later to maint).
000000358 (merge a66fc22bf9 rs/get-oid-with-flags-cleanup later to maint).
00000359 (merge 15b8abde07 js/mingw-includes-cleanup later to maint).
00360 (merge 2cebca0582 tb/cat-file-objectmode-update later to maint).
00