···11+Git 2.51.2 Release Notes
22+========================
33+44+In addition to fixes for an unfortunate regression introduced in Git
55+2.51.1 that caused "git diff --quiet -w" to be not so quiet when there
66+are additions, deletions and conflicts, this maintenance release merges
77+more fixes/improvements that have landed on the master front, primarily
88+to make the CI part of the system a bit more robust.
99+1010+1111+Fixes since Git 2.51.1
1212+----------------------
1313+1414+ * Recently we attempted to improve "git diff -w --quiet" and friends
1515+ to handle cases where patch output would be suppressed, but it
1616+ introduced a bug that emits unnecessary output, which has been
1717+ corrected.
1818+1919+ * The code to squelch output from "git diff -w --name-status"
2020+ etc. for paths that "git diff -w -p" would have stayed silent
2121+ leaked output from dry-run patch generation, which has been
2222+ corrected.
2323+2424+ * Windows "real-time monitoring" interferes with the execution of
2525+ tests and affects negatively in both correctness and performance,
2626+ which has been disabled in Gitlab CI.
2727+2828+ * An earlier addition to "git diff --no-index A B" to limit the
2929+ output with pathspec after the two directories misbehaved when
3030+ these directories were given with a trailing slash, which has been
3131+ corrected.
3232+3333+ * The "--short" option of "git status" that meant output for humans
3434+ and "-z" option to show NUL delimited output format did not mix
3535+ well, and colored some but not all things. The command has been
3636+ updated to color all elements consistently in such a case.
3737+3838+ * Unicode width table update.
3939+4040+ * Recent OpenSSH creates the Unix domain socket to communicate with
4141+ ssh-agent under $HOME instead of /tmp, which causes our test to
4242+ fail doe to overly long pathname in our test environment, which has
4343+ been worked around by using "ssh-agent -T".
4444+4545+Also contains various documentation updates, code cleanups and minor fixups.
-54
Documentation/RelNotes/2.52.0.adoc
···104104105105 * Adjust to the way newer versions of cURL selectively enable tracing
106106 options, so that our tests can continue to work.
107107- (merge 1b5a6bfff3 jk/curl-global-trace-components later to maint).
108107109108 * The clear_alloc_state() API function was not fully clearing the
110109 structure for reuse, but since nobody reuses it, replace it with a
···147146148147 * During interactive rebase, using 'drop' on a merge commit lead to
149148 an error, which was incorrect.
150150- (merge 4d491ade8f js/rebase-i-allow-drop-on-a-merge later to maint).
151149152150 * "git refs migrate" to migrate the reflog entries from a refs
153151 backend to another had a handful of bugs squashed.
154154- (merge 465eff81de ps/reflog-migrate-fixes later to maint).
155152156153 * "git remote rename origin upstream" failed to move origin/HEAD to
157154 upstream/HEAD when origin/HEAD is unborn and performed other
···164161 * "git push" had a code path that led to BUG() but it should have
165162 been a die(), as it is a response to a usual but invalid end-user
166163 action to attempt pushing an object that does not exist.
167167- (merge dfbfc2221b dl/push-missing-object-error later to maint).
168164169165 * Various bugs about rename handling in "ort" merge strategy have
170166 been fixed.
171171- (merge f6ecb603ff en/ort-rename-fixes later to maint).
172167173168 * "git jump" (in contrib/) fails to parse the diff header correctly
174169 when a file has a space in its name, which has been corrected.
···179174 the prefix from the output, and oddballs like "-" (stdin) did not
180175 work correctly because of it. Correct the set-up by undoing what
181176 the set-up sequence did to cwd and prefix.
182182- (merge e1d3d61a45 jc/diff-no-index-in-subdir later to maint).
183177184178 * Various options to "git diff" that makes comparison ignore certain
185179 aspects of the differences (like "space changes are ignored",
···188182 (merge b55e6d36eb ly/diff-name-only-with-diff-from-content later to maint).
189183190184 * The above caused regressions, which has been corrected.
191191- (merge 623f7af2 jk/diff-from-contents-fix later to maint).
192192- (merge 3da4413d jc/diff-from-contents-fix later to maint).
193185194186 * Documentation for "git rebase" has been updated.
195187 (merge 3f7f2b0359 je/doc-rebase later to maint).
···197189 * The start_delayed_progress() function in the progress eye-candy API
198190 did not clear its internal state, making an initial delay value
199191 larger than 1 second ineffective, which has been corrected.
200200- (merge 457534d041 js/progress-delay-fix later to maint).
201192202193 * The compatObjectFormat extension is used to hide an incomplete
203194 feature that is not yet usable for any purpose other than
204195 developing the feature further. Document it as such to discourage
205196 its use by mere mortals.
206206- (merge 716d905792 bc/doc-compat-object-format-not-working later to maint).
207197208198 * "git log -L..." compared trees of multiple parents with the tree of the
209199 merge result in an unnecessarily inefficient way.
···213203 repository, especially a partially cloned one, "git fetch" may
214204 mistakenly think some objects we do have are missing, which has
215205 been corrected.
216216- (merge 8f32a5a6c0 jk/fetch-check-graph-objects-fix later to maint).
217206218207 * "git fetch" can clobber a symref that is dangling when the
219208 remote-tracking HEAD is set to auto update, which has been
···225214226215 * Manual page for "gitk" is updated with the current maintainer's
227216 name.
228228- (merge bcb20dda83 js/doc-gitk-history later to maint).
229217230218 * Update the instructions for using GGG in the MyFirstContribution
231219 document to say that a GitHub PR could be made against `git/git`
232220 instead of `gitgitgadget/git`.
233233- (merge 37001cdbc4 ds/doc-ggg-pr-fork-clarify later to maint).
234221235222 * Makefile tried to run multiple "cargo build" which would not work
236223 very well; serialize their execution to work around this problem.
237237- (merge 0eeacde50e da/cargo-serialize later to maint).
238224239225 * "git repack --path-walk" lost objects in some corner cases, which
240226 has been corrected.
241241- (merge 93afe9b060 ds/path-walk-repack-fix later to maint).
242227243228 * "git ls-files <pathspec>..." should not necessarily have to expand
244229 the index fully if a sparsified directory is excluded by the
···249234 * Windows "real-time monitoring" interferes with the execution of
250235 tests and affects negatively in both correctness and performance,
251236 which has been disabled in Gitlab CI.
252252- (merge 608cf5b793 ps/gitlab-ci-disable-windows-monitoring later to maint).
253237254238 * A broken or malicious "git fetch" can say that it has the same
255239 object for many many times, and the upload-pack serving it can
256240 exhaust memory storing them redundantly, which has been corrected.
257257- (merge 88a2dc68c8 ps/upload-pack-oom-protection later to maint).
258241259242 * A corner case bug in "git log -L..." has been corrected.
260260- (merge e3106998ff sg/line-log-boundary-fixes later to maint).
261243262244 * "git rev-parse --short" and friends failed to disambiguate two
263245 objects with object names that share common prefix longer than 32
···267249 * Some among "git add -p" and friends ignored color.diff and/or
268250 color.ui configuration variables, which is an old regression, which
269251 has been corrected.
270270- (merge 1092cd6435 jk/add-i-color later to maint).
271252272253 * "git subtree" (in contrib/) did not work correctly when splitting
273254 squashed subtrees, which has been improved.
···283264 * "git rebase -i" failed to clean-up the commit log message when the
284265 command commits the final one in a chain of "fixup" commands, which
285266 has been corrected.
286286- (merge 82a0a73e15 pw/rebase-i-cleanup-fix later to maint).
287267288268 * There are double frees and leaks around setup_revisions() API used
289269 in "git stash show", which has been fixed, and setup_revisions()
···294274 * Deal more gracefully with directory / file conflicts when the files
295275 backend is used for ref storage, by failing only the ones that are
296276 involved in the conflict while allowing others.
297297- (merge 948b2ab0d8 kn/refs-files-case-insensitive later to maint).
298277299278 * "git last-modified" operating in non-recursive mode used to trigger
300279 a BUG(), which has been corrected.
···307286 * The "do you still use it?" message given by a command that is
308287 deeply deprecated and allow us to suggest alternatives has been
309288 updated.
310310- (merge 54a60e5b38 kh/you-still-use-whatchanged-fix later to maint).
311289312290 * Clang-format update to let our control macros be formatted the way we
313291 had them traditionally, e.g., "for_each_string_list_item()" without
314292 space before the parentheses.
315315- (merge 3721541d35 jt/clang-format-foreach-wo-space-before-parenthesis later to maint).
316293317294 * A few places where a size_t value was cast to curl_off_t without
318295 checking has been updated to use the existing helper function.
319319- (merge ecc5749578 js/curl-off-t-fixes later to maint).
320296321297 * "git reflog write" did not honor the configured user.name/email
322298 which has been corrected.
···328304 environment, but Ubuntu replaced with "sudo" with an implementation
329305 that lacks the feature. Work this around by reinstalling the
330306 original version.
331331- (merge fddb484255 ps/ci-avoid-broken-sudo-on-ubuntu later to maint).
332307333308 * The reftable backend learned to sanity check its on-disk data more
334309 carefully.
···355330 output with pathspec after the two directories misbehaved when
356331 these directories were given with a trailing slash, which has been
357332 corrected.
358358- (merge c0bec06cfe jk/diff-no-index-with-pathspec-fix later to maint).
359333360334 * The "--short" option of "git status" that meant output for humans
361335 and "-z" option to show NUL delimited output format did not mix
362336 well, and colored some but not all things. The command has been
363337 updated to color all elements consistently in such a case.
364364- (merge 50927f4f68 jk/status-z-short-fix later to maint).
365338366339 * Unicode width table update.
367367- (merge 330a54099e tb/unicode-width-table-17 later to maint).
368340369341 * GPG signing test set-up has been broken for a year, which has been
370342 corrected.
···374346 ssh-agent under $HOME instead of /tmp, which causes our test to
375347 fail doe to overly long pathname in our test environment, which has
376348 been worked around by using "ssh-agent -T".
377377- (merge b7fb2194b9 ps/t7528-ssh-agent-uds-workaround later to maint).
378349379350 * Other code cleanup, docfix, build fix, etc.
380380- (merge 823d537fa7 kh/doc-git-log-markup-fix later to maint).
381381- (merge cf7efa4f33 rj/t6137-cygwin-fix later to maint).
382351 (merge 529a60a885 ua/t1517-short-help-tests later to maint).
383352 (merge 22d421fed9 ac/deglobal-fmt-merge-log-config later to maint).
384384- (merge 741f36c7d9 kr/clone-synopsis-fix later to maint).
385353 (merge a60203a015 dk/t7005-editor-updates later to maint).
386386- (merge 7d4a5fef7d ds/doc-count-objects-fix later to maint).
387354 (merge 16684b6fae ps/reftable-libgit2-cleanup later to maint).
388388- (merge f38786baa7 ja/asciidoc-doctor-verbatim-fixes later to maint).
389389- (merge 374579c6d4 kh/doc-interpret-trailers-markup-fix later to maint).
390390- (merge 44dce6541c kh/doc-config-typofix later to maint).
391391- (merge 785628b173 js/doc-sending-patch-via-thunderbird later to maint).
392355 (merge e5c27bd3d8 je/doc-add later to maint).
393356 (merge 13296ac909 ps/object-store-midx-dedup-info later to maint).
394394- (merge 2f4bf83ffc km/alias-doc-markup-fix later to maint).
395395- (merge b0d97aac19 kh/doc-markup-fixes later to maint).
396357 (merge f9a6705d9a tc/t0450-harden later to maint).
397397- (merge c25651aefd ds/midx-write-fixes later to maint).
398398- (merge 069c15d256 rs/object-name-extend-abbrev-len-update later to maint).
399399- (merge bf5c224537 mm/worktree-doc-typofix later to maint).
400400- (merge 31397bc4f7 kh/doc-fast-import-markup-fix later to maint).
401401- (merge ac7096723b jc/doc-includeif-hasconfig-remote-url-fix later to maint).
402402- (merge fafc9b08b8 ag/doc-sendmail-gmail-example-update later to maint).
403358 (merge a66fc22bf9 rs/get-oid-with-flags-cleanup later to maint).
404404- (merge e1d062e8ba ps/odb-clean-stale-wrappers later to maint).
405405- (merge fdd21ba116 mh/doc-credential-url-prefix later to maint).
406406- (merge 1c573a3451 en/doc-merge-tree-describe-merge-base later to maint).
407407- (merge 84a6bf7965 ja/doc-markup-attached-paragraph-fix later to maint).
408408- (merge 399694384b kh/doc-patch-id-markup-fix later to maint).
409359 (merge 15b8abde07 js/mingw-includes-cleanup later to maint).
410410- (merge 3860985105 js/unreachable-workaround-for-no-symlink-head later to maint).
411411- (merge b3ac6e737d kh/doc-continued-paragraph-fix later to maint).
412360 (merge 2cebca0582 tb/cat-file-objectmode-update later to maint).
413413- (merge 96978d7545 js/ci-github-actions-update later to maint).
414414- (merge 0c4f1346ca so/t2401-use-test-path-helpers later to maint).