Skip to content
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

WinMerge 2.16.12.0 Error message comparing zipped files in TortoiseSVN #826

Open
Andreas-Schniertshauer opened this issue Jun 14, 2021 · 3 comments

Comments

@Andreas-Schniertshauer
Copy link

Andreas-Schniertshauer commented Jun 14, 2021

Hi,
I use WinMerge in TortoiseSVN to compare zipped files, when I select a .zip file in the Windows explorer and select "SVN Show Log" from the context menu of the .zip file I get a subversion history of all commits of this zip file, when I double click the very first file in history to show the difference I get an error message with red X from WinMerge: "Error Drive:Path\File.zip.svn017.tmp.zip The system cannot access the file". If I click OK WinMerge shows all files contained in the .zip in the WinMerge folder view and in the column "Comparison result" "Right only Drive:\path\File.ext" is shown. When I double click the interesting file I get the normal WinMerge comparion view (Untitled left (empty) and right file (initial content)), and the comparision result is exactly what I expect - it is the same result if I compare the first commit of a normal file (in WinMerge left is empty and on the right the new file content is show - all fine as expected).
My Question: is it possible to disable the error message in WinMerge, if not, can a "I don't want to show this message again" be implemented? I ask because the behavior should be the same as with the normal file and because "I know what I am doing" and I expect that left is empty and I don't want to see the message and click every time to close the dialog.
I thought it has something to do with the plugins, but I disabled all in the "Plugins Settings" dialog.
I disabled "Automatically verify paths in Open-dialog" in Options\General, but that did not help.

Remark: the two files file.zip.svn000.tmp.zip and file.zip.svn001.tmp.zip exist in the %Appdata%\Local\Temp folder but one file file.zip.svn001.tmp.zip has size 0.
Remark: subversion / TortoiseSVN is not causing the error: when I do a compare on the generated tmp.zip files I also get this message from WinMerge, so it seems that the message is shown because of the 0 sized file.
When I use WinMerge from the command line:
"c:\Program Files\WinMerge\WinMergeU.exe" File.zip.svn000.tmp.zip File.zip.svn001.tmp.zip
I also get the error message.
Remark: When I rename the file "C:\Program Files\WinMerge\Merge7z\7z.dll" to e.g. "C:\Program Files\WinMerge\Merge7z\7z.dll_" so that it is not used by WinMerge, the error message is not shown, is this file necessary, I ask, because when building the git trunk there is no such file, and the diff on zip files is working without it.
Thank you very much,
Andreas.

@sdottaka
Copy link
Member

This error message seems to be displayed by the 7-Zip DLL (7z.dll) used by WinMerge, which unfortunately cannot be controlled from the WinMerge side.

@Andreas-Schniertshauer
Copy link
Author

The WinMerge.iss installer shows that the 7z.dll is taken from Source: ....\Build\Merge7z\7z.dll; but when I build the Merge7z project from the ALL.vs2019.sln no 7z.dll appears in the folder and any other folder. How is it being build? The sources I found in Externals\sevenzip\

@Andreas-Schniertshauer
Copy link
Author

The message box is opened in Format7zDLL::Interface::Open in file winmerge\ArchiveSupport\Merge7z\Merge7zCommon.cpp in the catch case Alert is called, so maybe it would be possible to supress it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants