-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
git difftool suddenly dies in 2.20 #1974
Comments
And I am pretty certain that this bug report is incomplete: $ git difftool This message is displayed because 'diff.tool' is not configured.
See 'git difftool --tool-help' or 'git help config' for more details.
'git difftool' will now attempt to use one of the following tools:
opendiff kdiff3 tkdiff xxdiff meld kompare gvimdiff diffuse diffmerge ecmerge p4 merge araxis bc codecompare emerge vimdiff
Viewing (1/1): 'README.md'
Launch 'vimdiff' [Y/n]? When I say This is with a 64-bit Git for Windows installed via the official installer, using Secure Channel and the "check daily for updates" checked, otherwise default options. |
@dscho In case this is the same thing or same class of things, I upgraded this morning and has |
@dakotahawkins that sounds worrisome. Hopefully you can gather more information on this. |
I observed the same problem (as reported by MarkKharitonov) in git v2.20 on Windows. (I have not tried other versions after v2.20, I can not say for sure when the regression started). I did a little bit of research. Try to do like this: When the error occurs, it has NOT placed the temporary files to be diff'ed into the Temp folder. So, it is not the diffing that is the problem. It seems to be more related to what the error message says: "No such file..." |
Is it always the same file? |
Each experiment is repeatable, but if I change the experiment (i.e., specify other commits) it may have a different number of successes and fail on a different file than in the previous experiment. |
I have the same issue here. The issue feels random but it feels like it has more chances of happening on some files. |
I also have this issue. It seems to occur when using |
Can you verify that by making a really small repository from scratch, with 23 fake submodules? |
I guess that submodules is not the reason. My case also has submodules, but a lot fewer than quoted. |
Thanks for the reply, @dscho. Here's the (quick and dirty) script I used to reproduce the problem (assumes that you have already created the submodule repo that gets added):
When running the script with '23' as an argument, difftool works fine. When using '24' or more, I get the following output (many many lines of submodule creation removed)
Oh, this is under Windows 10, and I've reproduced it using 2.20.0 and 2.20.1 on different machines. |
Additional note: when running difftool on different repos, sometimes it says it cannot spawn "Í?" or some other garbage characters, sometimes it says it cannot spawn some path in the ".git" folder (like in my example) and sometimes it seems to make up some nonexistent path in the ".git" folder, although I haven't been able to reproduce the different ways it seems to fail with a test repo. |
I have reproduced the issue in another repository. I forked and cloned to my PC the open source project https://github.com/osmandapp/Osmand The I have installed git from git-scm.com download: Git-2.20.1-64-bit.exe. Windows 7, Git Bash. |
I downloaded and tested a series of versions, and here are the results:
|
@PhilipOakley yep, I think you are spot on, this is likely the same bug as #2007. |
Can y'all try the latest snapshot at https://wingit.blob.core.windows.net/files/index.html? It should be fixed there. |
git version 2.20.1.windows.1.25.g9e107c96c0 works for me. Problem is fixed. Thanks kgybels and dscho! |
@gunnar22 thanks for testing and confirming the fix! |
I have already downgraded to 2.18, but I am pretty certain the regression comes from 2.20:
Everything works once I downgraded to 2.18.
The text was updated successfully, but these errors were encountered: