Retour au classement

WinMerge/winmerge

C++winmerge.org

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.

c-plus-pluswinmergewindowsdiffmergeimageimage-diffmfccompare-fileswin32csvcsv-files
Croissance des étoiles
Étoiles
9k
Forks
994
Croissance hebdomadaire
Issues
474
5k
mars 2016août 2019févr. 2023juil. 2026
README

WinMerge

logo

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.

Build status CI sourceforge.net downloads GitHub Releases Translation status


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:

  1. Fork the WinMerge repository
  2. Create a feature branch on your fork
  3. Follow the existing coding style (use Allman indentation)
  4. 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 build WinMergeU.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. Open Docs/index.html to 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 po4a and diffutils)

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]
Dépôts similaires
electron/electron

:electron: Build cross-platform desktop apps with JavaScript, HTML, and CSS

C++MIT Licenseelectronjavascript
electronjs.org
122.1k17.3k
opencv/opencv

Open Source Computer Vision Library

C++Apache License 2.0opencvc-plus-plus
opencv.org
90.1k56.9k
bitcoin/bitcoin

Bitcoin Core integration/staging tree

C++MIT Licensebitcoinc-plus-plus
bitcoincore.org/en/download
89.7k39.1k
obsproject/obs-studio

OBS Studio - Free and open source software for live streaming and screen recording

CGNU General Public License v2.0cc-plus-plus
obsproject.com
74k9.4k
fffaraz/awesome-cpp

A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.

MIT Licensecppcppcon
fffaraz.github.io/awesome-cpp/
72.4k8.3k
WerWolv/ImHex

🔍 A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM.

C++GNU General Public License v2.0hex-editorreverse-engineering
imhex.werwolv.net
54.2k2.4k
serhii-londar/open-source-mac-os-apps

🚀 Awesome list of open source applications for macOS. https://t.me/s/opensourcemacosapps

Creative Commons Zero v1.0 Universalmacosmac
49.7k2.6k
qbittorrent/qBittorrent

qBittorrent BitTorrent client

C++Otherc-plus-plusbittorrent
qbittorrent.org
38.9k4.8k
aseprite/aseprite

Animated sprite editor & pixel art tool (Windows, macOS, Linux)

C++animationpixel-art
aseprite.org
38.2k8.4k
google-ai-edge/mediapipe

Cross-platform, customizable ML solutions for live and streaming media.

C++Apache License 2.0mediapipec-plus-plus
ai.google.dev/edge/mediapipe
36.2k6.1k
SerenityOS/serenity

The Serenity Operating System 🐞

C++BSD 2-Clause "Simplified" Licenseoperating-systemc-plus-plus
serenityos.org
33.7k3.4k
ossrs/srs

SRS is a simple, high-efficiency, real-time media server supporting RTMP, WebRTC, HLS, HTTP-FLV, HTTP-TS, SRT, MPEG-DASH, and GB28181, with codec support for H.264, H.265, AV1, VP9, AAC, Opus, and G.711.

C++MIT Licensertmplive-streaming
ossrs.io
29.1k5.7k