From: Johannes Schindelin Date: Mon, 29 Sep 2025 22:24:41 GMT Subject: [ANNOUNCE] Git for Windows 2.51.0(2) Message-ID: <1N2mBa-1uKVV81q0a-017bZy@mail.gmx.net> Dear Git users, I hereby announce that Git for Windows 2.51.0(2) is available from: https://gitforwindows.org/ Changes since Git for Windows v2.51.0 (August 19th 2025) New Features * Comes with PCRE2 v10.46. * Comes with cURL v8.16.0. This addresses a bug where fetches/pushes could fail with failed to read data from server: SEC_E_CONTEXT_EXPIRED (0x80090317) under certain circumstances. Also included: a back-port of a fix for a bug where connection failures were mistakenly reported as time-outs. * Comes with Tig v2.6.0. * Comes with MinTTY v3.8.1. * Comes with OpenSSL v3.5.3. Bug Fixes * The auto-updater now shows Git for Windows icon in the notification also on Windows/ARM64. * git clone/git fetch now deals more gracefully with directory / file conflicts when the files backend is used for ref storage, by failing only the ones that are involved in the conflict while allowing others. This is a regression in Git v2.51.0 that was reported in Git for Windows and independently also to the Git mailing list. This was fixed by merging Git's topic branch kn/ refs-files-case-insensitive. * Support for pathspecs in diff --no-index was somewhat buggy, which has been fixed. * git sparse-checkout subcommand learned a new clean action to prune otherwise unused working-tree files that are outside the areas of interest. An earlier version of this had been integrated into Microsoft Git already. This was fixed by merging Git's topic branch ds/sparse-checkout-clean. * git rebase -i failed to clean-up the commit log message when the command commits the final one in a chain of "fixup" commands, which has been corrected. Backported from Git's topic branch pw/ rebase-i-cleanup-fix. * git subtree did not work correctly when splitting squashed subtrees, which has been improved. Backported from Git's topic branch cs/subtree-squash-split-fix. * Some among git add -p and friends ignored color.diff and/or color.ui configuration variables, which is an old regression, which has been corrected. This was fixed by merging Git's topic branch jk /add-i-color. * A corner-case bug in git log -L... has been corrected. This was fixed by merging Git's topic branch sg/line-log-boundary-fixes. * A broken or malicious git fetch can say that it has the same object for many many times, and the upload-pack serving it can exhaust memory storing them redundantly, which has been corrected. This was fixed by merging Git's topic branch ps/upload-pack-oom-protection. * Fixes multiple crashes around midx write-out codepaths. This was fixed by merging Git's topic branch ds/midx-write-fixes. * git repack --path-walk lost objects in some corner cases, which has been corrected. This was fixed by merging Git's topic branch ds/ path-walk-repack-fix. * Under a race against another process that is repacking the repository, especially a partially cloned one, git fetch may mistakenly think some objects we do have are missing, which has been corrected. This was fixed by merging Git's topic branch jk/ fetch-check-graph-objects-fix. * Various options to git diff that makes comparison ignore certain aspects of the differences (like "space changes are ignored", "differences in lines that match these regular expressions are ignored") did not work well with --name-only and friends. This was fixed by merging Git's topic branch ly/ diff-name-only-with-diff-from-content. * git diff --no-index run inside a subdirectory under control of a Git repository operated at the top of the working tree and stripped the prefix from the output, and oddballs like "-" (stdin) did not work correctly because of it. Correct the set-up by undoing what the set-up sequence did to the current working directory and prefix. This was fixed by merging Git's topic branch jc/ diff-no-index-in-subdir. * Various bugs about rename handling in "ort" merge strategy have been fixed. This was fixed by merging Git's topic branch en/ ort-rename-fixes. * git push had a code path that led to BUG() but it should have reported a regular failure, as it is a response to a usual but invalid end-user action to attempt pushing an object that does not exist. This was fixed by merging Git's topic branch dl/ push-missing-object-error. * git refs migrate to migrate the reflog entries from a refs backend to another had a handful of bugs squashed. This was fixed by merging Git's topic branch ps/reflog-migrate-fixes. * During interactive rebase, using drop on a merge commit lead to an error, which was incorrect. This was fixed by merging Git's topic branch js/rebase-i-allow-drop-on-a-merge. Git-2.51.0.2-64-bit.exe | 5cf583441ccd8d98d3492936235b6ee30c6847d1b3f49365d6a025b3432094ad Git-2.51.0.2-arm64.exe | ba95adc559e2d91ae28aa354c0ffb06b2c54f2bf42985f278dded9ca31194816 PortableGit-2.51.0.2-64-bit.7z.exe | 85d6e9f865b73827e22d532fd6cd5b93987c8d264142786b0721956619d5c00e PortableGit-2.51.0.2-arm64.7z.exe | f35e795224349c63b7d6c429c2d8404a6ce7e2e8f91934a3f6ba2ca8e7e285a8 MinGit-2.51.0.2-64-bit.zip | 314fc2b7425ca116ea201e493fcb72008376c64997e866e6c8b8a5b360b3b8a9 MinGit-2.51.0.2-arm64.zip | 4feecfaea2647a2a0b25b7bfa518b9a65eb3434d9be7016e4dd348f07bcc6d2f MinGit-2.51.0.2-32-bit.zip | 617a1433fbf5e23deaa17b7559d79f465a08fea7e09a0cff32ac0f2216003a8e MinGit-2.51.0.2-busybox-64-bit.zip | deb7e15ec1e33cad225a6be4401617e21569d188da0a1ca71c29d8018ad087b6 MinGit-2.51.0.2-busybox-32-bit.zip | b2ed51815e858497c2399004a855d5ebb0f8eacd93e0a81a6afc46b5741efda6 Git-2.51.0.2-64-bit.tar.bz2 | 0e4dcabc37f9749fb57b292611a53155842fe52bcbef8e7f56cc80ced65bf3f5 Git-2.51.0.2-arm64.tar.bz2 | a219d91f5f8e707f5e7ff23402af1e7e6421c972896fa3f33edba170439bae90 Ciao, Johannes