Windows/diff endpoints v07#7
Open
jonmathews-ensoft wants to merge 2 commits into
Open
Conversation
added 2 commits
May 7, 2026 09:45
Git diff is about comparing two endpoints. Pass endpoints as determined by diff argument parsing to external tools via environment variables. External tools receive a path and the contents to compare in temporary files. Tools are unable to display the commits being compared, nor the paths if one was renamed. A common scenario is a GUI client invoking an external tool via difftool. The GUI client knows the selected commits, but few if any clients pass that information to the external tool. Git receives the commits to compare, and is in a position to share the endpoints with the external tool. External tools should be able to display endpoints that enable users to locate the content being compared, ideally in terms of commit objects and paths. Address this problem by exporting the following variables: GIT_DIFF_ENDPOINT_A GIT_DIFF_ENDPOINT_B GIT_DIFF_PATH_A GIT_DIFF_PATH_B The ENDPOINT_* variables are the endpoints as determined by the builtin diff argument parsing. Ideally the values are object ids for commits, but will degrade to tree objects if the arguments are trees. A PATH_* variable is the path of the contents in the corresponding endpoint. For clarity, both variables are set even if the paths are the same. When a blob is added or deleted, the other path is /dev/null. If --relative is specified, the paths are relative. Out of scope: - diffs vs the index, working tree, or no-index: these could be handled in the future by indicating the endpoint is 'index', 'working-tree' or 'no-index'. - merge-commits: the current approach does not consider how to handle more than two endpoints. Environment variables will not be set. - GIT_EXTERNAL_DIFF does not support --submodule=diff, and therefore is not considered at this time. - difftool --dir-diff invokes the external tool on two directories. This is achieved by invoking diff to find the differences. This prevents environment variables from being passed back to difftool.
Git for Windows v2.54.0
Changes since Git for Windows v2.53.0(3) (April 14th 2026)
Due to persistent maintenance challenges, git svn is no longer included
in Git for Windows. Users who still need this command are highly
encouraged to use a Linux version of git svn via the Windows Subsystem
for Linux instead, or switch to a regular MSYS2 setup: install MSYS2,
then run the following command in the MSYS2 UCRT64 Bash: pacman -Sy
mingw-w64-ucrt-x86_64-git-svn. After that, the git svn command will be
available in that Bash. On Windows/ARM64, you will want to use the
CLANGARM64 variant instead (and install
mingw-w64-clang-aarch64-git-svn).
New Features
* Comes with Git v2.54.0.
* Comes with Bash v5.3.9.
* Comes with Git Credential Manager v2.7.3.
* Comes with MinTTY v3.8.2.
* The shell aliases in Git Bash that ensured that interpreters such
as Python and Node.JS are executed via winpty are no longer
necessary, and have therefore been dropped.
* Comes with the MSYS2 runtime (Git for Windows flavor) based on
Cygwin v3.6.7.
* Comes with cURL v8.19.0.
* Comes with OpenSSH v10.3.P1.
* Comes with OpenSSL v3.5.6.
Bug Fixes
* The iconv executable, which was inadvertently dropped from Git for
Windows v2.53.0's installer, is now included again.
* In some circumstances, when typing while a still-running program is
about to terminate, the typed characters could arrive out of order
in Git Bash. This bug was fixed.
* Similar to how git clean already avoids traversing NTFS junctions,
git worktree remove now does the same.
* The number of CPU cores is now detected correctly on multi-socket
systems.
* When fetching/pushing via Secure Channel (the default TLS/SSL
method), the timeout to renegotiate (e.g. using client
certificates) was recently reduced to 7 seconds, which was too
short. It has been extended to 60 seconds.
* The recent security bug fix that disables NTLM by default missed
the NTLM fallback in the Kerberos protocol. This fallback is now
disabled, following the cURL project's guidance.
* A really old bug which prevented Kerberos authentication from
working with the default http.emptyAuth ("auto"), was fixed.
* The git instaweb command is no longer distributed with Git for
Windows because it would require GitWeb (which has not been
distributed with Git for Windows for quite a few years).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.