Winmerge
WinMerge is an Open Source differencing and merging tool for Windows. WinMerge can compare both folders and files, presenting differences in a visual text format that is easy to understand and handle.
Install / Use
/learn @WinMerge/WinmergeREADME
WinMerge
WinMerge is an open-source differencing and merging tool for Windows.
It compares files and folders and presents differences in a clear, visual format that is easy to understand and work with.
WinMerge has been actively developed since 2000.
What Can WinMerge Do?
WinMerge provides a rich set of features for comparing and merging files and folders:
-
File Comparison
Compare two or three text files side by side, with differences highlighted line by line.
Inline differences within a line can also be shown. -
Folder Comparison
Compare the contents of two folders to see which files differ, are missing, or exist only on one side.
Folder comparisons support advanced filter expressions, allowing you to include or exclude files and folders based on names, paths, sizes, timestamps, and other attributes. -
Merging
Merge changes between files or folders by selectively applying differences from one side to the other. -
Syntax Highlighting
Syntax highlighting for many programming languages and file formats helps make code and structured text easier to read and compare. -
Patch File Creation
Generate patch files in normal, context, or unified diff formats. -
Flexible Ignore Options
Ignore differences such as whitespace changes, case differences, or lines matching regular expressions. -
Shell Integration
Integrates with Windows Explorer, enabling direct comparison via the right-click context menu. -
Archive Support
Using 7-Zip, WinMerge can compare files inside many archive formats as if they were normal folders.
In short, WinMerge is useful for anyone who needs to track changes, compare versions of files or directories, or merge modifications efficiently.
How to Contribute
If you find a bug or would like to request a feature, please submit an issue.
To contribute code:
- Fork the WinMerge repository
- Create a feature branch on your fork
- Follow the existing coding style (use Allman indentation)
- Submit a Pull Request describing your changes
Folder Structure
The WinMerge repository is organized as follows:
-
ArchiveSupport/Merge7z
Merge7z DLLs that connect WinMerge with 7-Zip. Required to buildWinMergeU.exe.
A standalone installer for these DLLs is also included. -
Build
Output directory created during compilation. Contains executables, libraries, manuals, etc. -
BuildTmp
Temporary files created during compilation. Safe to delete. -
ColorSchemes
Color schemes and themes. -
Docs
User and developer documentation. OpenDocs/index.htmlto browse locally. -
Externals
Third-party libraries used by WinMerge (some customized). -
Filters
File and folder filter definitions. -
Installer
WinMerge installer sources. -
Plugins
Runtime plugin DLLs and scripts. -
ShellExtension
Windows Explorer shell extension that adds context menu entries. -
Src
Main WinMerge source code. -
Testing
Test files and scripts, including unit tests based on the
Google Test Framework. -
Tools/Scripts
Various development utilities. -
Translation
Language and translation files.
The changelog is available at:
Docs/Users/ChangeLog.md
How to Run and Debug
WinMerge provides multiple Visual Studio solution files (.sln) for building and debugging.
After running one of the BuildAll scripts, you can launch WinMerge from:
Build\X64\Release\WinMergeU.exe
If you built for a different architecture, check the corresponding output folder. To debug, you can also start WinMerge normally and attach Visual Studio to the running process.
Build WinMerge
Visual Studio 2017
- Community / Professional / Enterprise
- VC++ 2017 (v141) toolset
- Visual C++ MFC and ATL
- Windows 10 SDK
- Optional: Windows XP support for C++
Visual Studio 2022 or later
- Community / Professional / Enterprise
- MSVC v143 or newer
- Visual C++ MFC and ATL
- Windows 10 SDK
Additional Tools
- git
- Inno Setup 5.x and 6.x
- 7-Zip
- Python
- Pandoc
- MSYS2 (including
po4aanddiffutils)
How to Build
git clone --recurse-submodules https://github.com/WinMerge/winmerge
cd winmerge
DownloadDeps.cmd
BuildAll.cmd [x86|x64|ARM64]
# or
BuildAll.vs2022.cmd [x86|x64|ARM64]
# or
BuildAll.vs2017.cmd [x86|x64|ARM|ARM64]
Related Skills
healthcheck
335.4kHost security hardening and risk-tolerance configuration for OpenClaw deployments
imsg
335.4kiMessage/SMS CLI for listing chats, history, and sending messages via Messages.app.
node-connect
335.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
xurl
335.4kA CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.

