WinMerge is pretty useful for doing things like determining how a project has changed since a previous release, migrating changes to a previous version, etc... Most of the time, I use WinMerge in directory mode & then pick & choose files that have been changed. For those of you, however, who are in search of a directory synchronizing tool only (ie: Briefcase), WinMerge is probably not the right tool for you.
Most of what you'll use in WinMerge can be found on the toolbar. If you're not a toolbar fanatic, these functions are also available via menu or keystroke. Here's a short description of each of the toolbar buttons.
| Button | Description | Keystroke |
| Begins a new comparison session by displaying the Open dialog | Ctrl+O | |
| Saves changes you have made in either file (prompts first) | Ctrl+S | |
| Undoes the previous merge operation | Ctrl+Z | |
| Moves to the next difference in the open diff window | Down Arrow | |
| Moves to the previous difference in the open diff window | Up Arrow | |
| Copies the selected difference in the left file to the right file | Right Arrow | |
| Copies the selected difference in the right file to the left file | Left Arrow | |
| Displays WinMerge properties | ||
| Copies all diffs in the left file to the right file | ||
| Copies all diffs in the right file to the left file |
To start comparing files, click the
button, which displays the Open dialog, shown below.

The Open dialog has two fields that are used to specify what you would like to compare. You can specify comparison objects in one of four ways:
Enter the path names directly into the edit fields
Click the Browse button and use the file chooser to navigate to the desired object
Expand the combo box and select a previously entered path (WinMerge remembers the last 20)
Drag & drop something into the edit field from Explorer
Note that if you enter a path to a single file in one field and a directory path in the other, WinMerge will search for the filename in the specified directory and then perform a single file comparison. Also, a recursive option is supplied when comparing directories, which will recursively compare the contents of each subdirectory as well.
You may specify which extensions you would like to compare using the Extensions field. To compare all files in the selected directories, leave the field blank, or enter *.*
If you want to specify multiple extensions, enter a semi-colon separated list of extensions such as the following:
cpp;hpp;c;h
home | install | getting started | compare files | compare dirs | SourceSafe | locale | options