WinMerge is an Open Source visual text file differencing and merging tool for Win32 platforms. WinMerge can compare folders and files and present differences in easy to understand and handle format.
WinMerge is highly useful for determining what has changed between project versions, and then merging changes between versions. WinMerge can be used as external differencing/merging tool or as standalone application.
In addition WinMerge has a lot of helping and supporting features making comparing and synching/merging as easy and useful as possible. Several programming languages and other fileformats are syntax highlighted.
WinMerge is not an hex-editor. WinMerge can only inform user if binary files are different or identical, but WinMerge does not allow merging or editing binary files.
Goal of WinMerge development is to make comparing and synch/merge of directories and files easy and fast. While maintaining maximum reliability. Easy of use reduces errors. Latest 2.6 version is considered a stable and reliable program to use.
Please note that WinMerge is not a freeware, but it is GPL licenced. We have given you a good tool for free, so please follow our licence and submit your improvements back to us. We are happy to get help improving WinMerge further. It is advantage for all WinMerge users.
There are three kind of versions available in downloads page.
Stable versions are recommended for most users. If you are unsure about what version to use - use latest stable version. Stable versions have even second number, for example 2.2, 2.4 and 2.6.
Beta versions are for people who want to test latest features and improvements done after last stable version. Beta versions are not so extensively tested as stable versions are and probably have some bugs. Beta versions have odd second number, for example 2.3 and 2.5. Beta versions can be used in production, they are not expected to have major bugs. But there is always a risk with using beta-level release, so consider it carefully. We have tried to release new stable series once a year, so it may be worth waiting for few months for next stable release...
Experimental versions are snapshot releases from version control (Subversion). They have all the latest features and improvements. Some features may still be buggy and/or incomplete. These releases are made available to allow users to try out the current code without needing to compile, and participate in development discussions concerning new and changing features. We also appreciate any help testing the current code. Use with care and enable backups! And please report bugs you find using these builds, it really helps with WinMerge development!
All this text about different versions may sound confusing if you never have worked with this kind of model. Lets see this with picture below:
WinMerge stable and development versions
This picture presents how our releases and different versions relate to each other. Development always happens with development versions (experimental versions and beta versions). At proper points we create a new branch for stable releases. In above picture arrows for 2.2.x and 2.4.x are two current stable branches. Picture does not show 2.6 which is the latest stable branch.
![]() |
Important |
---|---|
Branch always means a separate development. There is no any automation to copy improvements or fixes from development versions to stable versions. Or in opposite direction. Changes are always selected by hand and then merged (with WinMerge, of course..). |
After a branch is created, we try to keep code in it as stable as possible. Usually this means we copy only tested bugfixes from development versions to stable versions. Unfortunately this is not always an easy task and errors can happen. And new bugs appear also in stable versions sometimes. It is just a real-life software development. However, in general quality in branches increases and 2.4.6 is more stable release than 2.4.0.
What this branching also means is that stable versions don't get many new features after a branch is created. Stable versions 2.4.0 and 2.4.6 are pretty much similar feature-wise. After 2.4 stable branch we have already a created new stable branch 2.6. It has many imrovements and fixes done after 2.4 branch was created.
Many software vendors always increase their version numbers and say version with biggest version number is what people should use. If WinMerge was developed as closed-source software users would see only versions from stable branches and that would be true for WinMerge too. But as WinMerge is an open source software project we want to keep our development as open as possible. And do a lots of development version releases. The latest development version can have version number 2.5.3.7 and the latest stable version can have version number 2.4.6.
Open discussion forum is the fastest way to get help. Please be patient, it may take some time anybody answers.
If you have found a bug, please submit it as a bug report. Please attach as much information as you can, at least the version number of WinMerge you are using. If you can, attach also configuration log which you can see from menu -> Good information in bug report means better change for bug to be fixed faster.
![]() |
Important |
---|---|
Include version number in bug reports. Version number can be checked from -> dialog. |
We prefer that you register with Sourceforge.Net before posting a bug report (registration is public and free), so that you may get email notifications if we post follow-up questions to your bug. It is not at this time required that you register to post a bug report (although, we do generally give less priority to unregistered bug reports, because it has been our experience that unregistered posters often do not remember to return and check to answer follow-on questions).
WinMerge source codes are available in downloads page and from public Subversion server. We welcome everybody to download the sources, study them and alter them. If you find (and fix) bugs, improve something etc, please submit your changes back to us as patches and help improve this product! If you publish your altered version, you are required to publish changes source code too, it is what GPL licence is about. Please respect it.
While WinMerge development has been fast in last couple of years, all this work is done by people in their spare time. Nobody gets paid for improving WinMerge. We try to fix bugs as we find them or somebody reports them to us. We really try - we use WinMerge too. But there is absolutely no promises for new features. We always appreciate any help with WinMerge, be it testing, documenting, translating or coding.
As mentioned above, we look for help in many areas, not just coding. Translations, documentation and testing are important too.
Developer pages are good start if you want to help with development. We have also created a Developers-Wiki for developer documentation.
Development-mailing list is the preferred place for development discussions. Another place is in Developers-forum. If you are interested in helping with WinMerge development, let us know. If you want to fix one of our bugs or implement a new feature, let us know.