17. Frequently asked questions

17.1. General questions

17.1.1.

Why are there two executable files, WinMerge.exe and WinMergeU.exe?

  • WinMerge.exe is an ANSI (8-bit) executable which works in all 32-bit Windows systems. It does not have Unicode support.

    Internally, it stores only ANSI characters (256 possibilities). If you open a Unicode file, the characters must be converted to the ANSI codepage. As there are over 100,000 Unicode characters, and only 256 can be represented in the ANSI codepage, data loss may occur. Conversion may be approximative (accents are lost), or impossible (characters appear as "?").

    WinMerge.exe also can not open files with names outside the current ANSI codepag (e.g., WinMerge.exe can not open a file with a Hebrew name, if run on an English system. WinMergeU.exe can open such files.

  • WinMergeU.exe is a Unicode enabled executable which works on Windows NT4, Windows 2000, and newer systems.

17.1.2.

That splash screen is annoying, how do I turn it off?

From menu, select Edit->Options...->General->Disable Splash Screen

17.1.3.

When wanting to compare folders, I cannot select a folder in Browse-dialog?

Browse to the folder you want to compare (folder contents is shown in the dialog). Do not select any of the files or subfolders, just select the Open-button when "Folder Selection" is shown in filename editbox. If you already selected any of the files or subfolders, just write some nonsense to the filename editbox and select the Open-button. When the filename editbox doesn't contain any existing filename then WinMerge opens the folder.

17.1.4.

Does WinMerge support merging three files? Sometimes it is called 3-way merge, where one file is ancestor. This would be useful for version control!

Unfortunately not. We acknowledge it would be good feature but have no plans to implement it in near future. This can be somewhat worked around by using two WinMerge instances. (One developer has begun preliminary work on this feature, but it is not yet available, even in experimental releases.)

17.1.5.

Do you have any plans to support other operating systems than Windows?

Not currently. If somebody wants to help/work with cross-platform support (using wxWidgets for example) we are interested, of course.

17.1.6.

There is no CVS integration?!

Which kind of CVS integration WinMerge should have? Adding CVS client features to WinMerge is questionable since there are many good CVS clients already. Conflict file resolution is a feature we are planning to add in future releases.

17.1.7.

What is MRU (list)? What it means?

MRU is the abbreviation for "Most Recently Used", and means the history lists in the Open-dialog which contain the 20 last used files/paths per side.

17.1.8.

Can WinMerge open Open Office files?

Yes, enable Detect archive type from file signature option in Archive Options.

17.1.9.

Why do large files sometimes show as different in the folder view, but come up as identical in the merge editor?

This is because WinMerge uses the "Quick Compare" method for large files always. It allows WinMerge to compare large files more efficiently. To test if this is causing the behavior you're seeing, you could raise the limit for the Quick Compare threshold for large files. It is stored in the registry as:

HKEY_CURRENT_USER\Software\Thingamahoochie\WinMerge\Settings\QuickMethodLimit

You may consider raising this limit if you constantly compare large text files. Be careful to not raise it too much "for just to be sure". 100 MB is too much.

The default value for the limit is 4MB (0x400000).

17.1.10.

WinMerge shows an error (or even crashes!) complaining it cannot load CompareMSWordFiles.dll and/or CompareMSExcelFiles.dll!

Mentioned files are plugins written with Visual Basic (6.0). WinMerge installer does not contain Visual Basic runtime files so those plugins cannot be loaded. You can:

  1. Remove those files from WinMerge/Plugins -folder or

  2. Download the Visual Basic 6.0 runtime distribution from Microsoft®:http://support.microsoft.com/kb/290887 and install it. Or download just the one needed file from: http://www.dll-files.com/dllindex/dll-files.shtml?msvbvm60 and copy it to the WinMerge folder.

17.2. Installing

17.2.1.

WinMerge does not start and complains about missing DLL files (mfc71.dll, mfc71u.dll, msvcr71.dll, msvcp71.dll)

When installing from archive (zip, 7z) file you need also Runtimes-package, which contains those files. See the Install instructions.

17.3. File Comparing

17.3.1.

Why my files have all lines marked different (colored) even if I know all lines are not different?

Maybe your files have different line-ending styles (e.g. DOS and UNIX?). WinMerge by default compares also line-ending styles, but you can disable it from Edit->Options / Compare / Ignore carriage return differences.

17.4. Questions about binary files

17.4.1.

WinMerge says "Binary files are different", but I am not comparing binary files?

If you are using WinMerge.exe (not WinMergeU.exe), then your files may be Unicode files. WinMerge.exe cannot handle Unicode files. Please try comparing files with WinMergeU.exe if you have Windows NT4, Windows 2000 or newer Windows version.

17.4.2.

WinMerge cannot compare registry files (*.reg)?

Windows registry files (*.reg) are Unicode files (UTF-16 or UCS-2) -- see the question "I cannot merge binary files?" for a workaround.

17.4.3.

WinMerge tells my files are binary files even when they are not?

There is one or more zero-bytes in your file(s). If WinMerge finds zero-bytes from files, it considers the files to be binary files. You can try to remove those zero-bytes from files. Alternatively, you may open the files with the DisplayBinaryFiles plugin. This plugin allows viewing binary files, but not editing them. If you have a very recent version of WinMerge (2.6.0 and newer), you may use the new EditBinaryFiles plugin, which does allow editing binary files (using an escape scheme for representing non-printable characters).

17.4.4.

I cannot merge binary files?

WinMerge 2.6.0 (and newer) includes a binary file editor (plugin EditBinaryFiles.dll).

17.5. Questions about editor

17.5.1.

Some characters are cut in half?

Try selecting a different font from menu View->Select Font...

17.5.2.

I see question marks instead of letters in files?

This is what we call a "lossy" conversion.

For Unicode files (UCS-2, UTF-8), use WinMergeU.exe.

For ANSI files, this is probably due to code-page problems. If "Use codepage info" is selected from Options, turn that off and see if it helps.

17.5.3.

I cannot select proportional fonts for editor?

Unfortunately WinMerge supports only non-proportional fonts.

17.5.4.

What is delaying of (automatic) rescan? Why it is needed?

When Automatic Rescan is enabled, WinMerge delays rescanning while user edits files. So there is no rescanning happening when user types text but shortly after user has finished typing. Without this delaying WinMerge would do rescan after every typed letter and editing files would become slow. This delaying especially improves editing of bigger files which can take several seconds to rescan.

17.5.5.

Can I print files from editor?

There is basic printing support in WinMerge 2.6.0 and later versions. Select File->Print... from the menu.

17.5.6.

Can I hide similar lines in editor (so that only different lines are visible)?

No, you can't. Many users have requested this feature but we don't have any plans to implement it. We don't believe it would really improve usability.

17.6. WinMerge as external compare or diff-tool

17.6.1.

I want WinMerge to close with a single ESC press after I'm done?

Use -e command line switch.

17.6.2.

I don't want to see the "Files Are Identical" -messagebox when I compare identical files, I just want WinMerge to quit.

Use -x command line switch.

17.6.3.

How can I avoid temporary paths filling Open-dialog history lists?

Tell your external program to invoke WinMerge with the /ub option, which tells WinMerge to not add the files to the MRU.

17.6.4.

But the program I'm using doesn't allow commandline parameters!

Create a batch file where you add one of these lines (but not both):

  • CALL "<winmerge path>\WinMerge" /ub %1 %2
  • start "WinMerge" "<winmerge path>" /ub %1 %2

And then call this batch file from program.

17.7. Archive support

17.7.1.

I installed 7-Zip but archive support does not work?

Do you have plugin installed and or the plugin version matches 7-Zip version? If not, see Installing chapter for instructions for installing.

If the error is something like: "7-zip x.xx missing / Plugin present", then you probably have installed 7-Zip using MSI-installer. There are 7-Zip MSI installers that do not install all the files WinMerge needs (namely 7zip_pad.xml in 7-Zip program folder). Download and run the EXE version of the 7-Zip installer.

17.7.2.

How can I open "Perry-style" patch files WinMerge developers use when submitting patches?

"Perry-style" patches are zip-files containing original and changed files in different directories. WinMerge has internal support (surprise?) for handling these files. Just select zip file in question to left side and right side and WinMerge opens zip files contents to folder compare comparing original and altered files.

17.7.3.

I do not want to install 7-zip. Can archive support use other archive tools (like WinZip or WinRar)?

Unfortunately WinMerge can only use 7-zip.

17.7.4.

Can WinMerge open archive files with non-standard file-extensions? (For example .jar files as zip-files)

Yes, enable Detect archive type from file signature option in Archive Options.

17.8. Text encoding (codepages)

17.8.1.

How do I tell if my file is coded in the local windows (ie, ANSI) codepage?

Open the file with Windows notepad (eg. Start->(All) Programs->Accessories->Notepad. Choose File->Save As, and in the Save As dialog which appears, look at the dropdown list at the very bottom, labelled "Encoding".

  • If it says "ANSI", the file is (apparently) in the local windows codepage. If the file is entirely in English and normal punctuation, then the file is also in ASCII.

  • If it says "Unicode", the file is (probably) in the default Windows Unicode encoding "UCS-2LE".

  • If it says "UTF-8", the file is in the cross-platform Unicode encoding "UTF-8".

  • If it says "Unicode big endian", the file is in a different Unicode encoding not much used or supported under Windows, probably "UCS-2BE".

17.8.2.

How do I compare UTF-8 files? WinMerge is not showing them correctly.

Using WinMerge encoding detection.

  • If they are XML files, they should have an encoding attribute in the XML declaration, which should say "UTF-8". For example:

    <?xml version="1.0" encoding="UTF-8"?>
  • If they are HTML files, they should have the encoding embedded in a content attribute in a meta tag in the header. For example:

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  • For WinMerge to read encodings specified in XML or HTML (or Windows RC resource) files, the option checkbox Detect codepage info for... in Codepage options (Edit->Options from main menu) must be checked.

For all other cases, to instruct WinMerge to assume that all documents are UTF-8, set the default WinMerge codepage to 65001 (which is Microsoft's code for UTF-8) in Codepage options (Edit->Options from main menu) and then Custom Codepage.

17.9. Patch files

17.9.1.

Is there way to create patch files from the commandline?

No. It may be added in later versions but until then Win32 port of diffutils can be used. The Win32 port of diffutils (and patch) can be downloaded from GnuWin32 project from SourceForge: http://sourceforge.net/projects/gnuwin32

17.9.2.

Can patches be applied using WinMerge?

No. The patch tool from GnuWin32 project can be used for patch applying since WinMerge produces GNU/diffutils compatible patch files. See above question.