This topic describes how to compare and merge folders using the Folder Compare window.
You can begin a folder compare operation from either the WinMerge window or a Command Prompt window.
- From the WinMerge window
- From a Command Prompt window
When you start a folder compare operation, WinMerge displays this status window:
If the compare operation is quick, you might not notice the Progress window, which closes as soon as WinMerge displays the Folder Compare result. The Progress window shows the number of files and folders to be included in the operation, and the number compared so far. The progress bar graphically represents the Items compared.
Because the files compares are usually of different sizes, the status data does not indicate the time used or remaining. For example, a 50/100 ratio does not necessarily mean that half of the compare operation time is expired.
You can click Stop to terminate the operation at any time before the compare operation finishes. The Folder Compare window is displayed with the results calculated at that time, omitting any uncompleted results.
The Folder Compare window shows the result of a folder compare. Two different views are available:
During a recursive compare (that is, if you enabled the
Include Subfolders option in the Select Files or Folders
dialog when you launched the compare), you can click View → Tree Mode command to switch between the two views. The View → Tree Mode command is disabled for non-recursive compares.
In both views, the columns show different types of data for each result item. You can control the sorting of items in the view by clicking a column heading. This changes the sorting in two ways:
Toggles (reverses) the sort order of the column.
Resorts all the rows in the view by the column.
The Folder Compare window looks and behaves slightly differently for recursive and nonrecursive compares:
- Recursive folder compare
- Nonrecursive folder compare
In the Compare Folders window, files and folders are compared and divided into several categories. In each row, the category is clearly identified in the left column with one of these icons :
|Identical text files|
|Identical binary files|
|Identical files (type undetermined)|
|Different text files|
|Different binary files|
|Different files (type undetermined)|
|Identical folders (in tree view only)|
|Different folders (in tree view only)|
|Skipped (filtered) directories|
|Skipped (filtered) files|
|Items that can't be compared; for example when another program has locked the file.|
|Aborted item. WinMerge did not finish comparing this item when the compare was stopped. The result is unknown.|
You can use the mouse as well as keyboard and context menu shortcuts to navigate the Folder Compare window. You can also use the toolbar buttons. For example, the Next Difference button finds the next different file or folder and selects it.
Unique files and folders are navigated in the same way as different ones.
You can select multiple files and folders. However, some operations (like Rename) are not available with multiple selections.
Use the navigation buttons (Next Difference, Previous Difference, and so on) to step through differences in the compared files. Use WinMerge functions to merge contents by copying, moving, or delete one or more files or subfolders.
By default, the WinMerge window displays a single File Compare or Folder Compare window.
In single compare mode, of you start a file or folder comparison while a Compare window is currently open, the current File Compare window is closed if there are no changes in either side. But if WinMerge detects unsaved changes (for example, if you have merged or edited a file),.WinMerge prompts you to save or discard your changes before opening a new File Compare window.
For example, in the next screen shot WinMerge gives you a chance to save changes detected in the right side file:
If you want to work with multiple compare operations simultaneously, consider setting (checking) the Enable multiple compare windows for Folder compare option, which is disabled by default. With this option enabled, you can open multiple File Compare windows without the intervening Save step.
When you open multiple Compare windows, they're displayed by default as individually resizeable child windows within the WinMerge window. This example shows a Folder Compare window — the File Compare window has similar child windows:
You can control the layering of multiple windows in either of two ways:
Control the windows directly, for example by clicking a title bar to bring its window to the top, or minimizing a window.
Click the Window menu, which lists the windows that are currently open, and choose the window that you want to bring to the top.
Often, it's convenient to maximize your Compare window (by clicking its Maximixe button). The window then fills all the available space in the WinMerge window. The screen shot below shows a maximized Compare window.
When you maximize one Compare window, any other Compare windows are hidden, as shown in the preceding screen shot. To access those windows, you could return to the default view by clicking the Restore button. A better solution is to enable tabs by setting (checking) View → Tab Bar.
When you display the Tab bar, each Compare window has a tab that shows the filenames of the two compared files. Now, you can easily identify and display any available Compare window, and the selected Compare window remains maximized:
The Folder Compare window supports common operations on files, like editing, copying, deleting, moving, and renaming (moving is equivalent to a copy operation followed by a delete). You can use these file operations and some special WinMerge functions to merge the contents of folders. You can also open files using associated programs or external editors.
The most convenient way to perform most of these tasks is to right-click one or more items and use the context menu, where all file operations are available.
The most common file operation in the Folder Compare window is copying files from side to side. There are several forms of the WinMerge copy function: all of them copy only files that are different, because copying identical files is of no use in merging. The copy functions are available in the context menu, in the WinMerge menu, and in the toolbar:
In the Folder Compare window's context menu, the Copy item has a submenu with four shortcuts:
Left to Right and Right to Left copy the selection (or just the items in the selection that can be copied) from one side to the other. In the example, the suffix (2 of 4) indicates that only the two files that are different will be copied; the identical files will not. These shortcuts available only if any of the files you select is different: if you select only identical files, the shortcuts are unavailable.
Left to... and Right to... enable you to specify a copy target directory in your system, instead of a compared folder. When the Browse for Folder dialog opens, navigate to the target directory on your system (or create a new target folder) and click OK.
In the Folder Compare toolbar, Copy Right and Copy Left accomplish the same task as the Left to Right and Right to Left context menu shortcuts: they copy from side to side only files that are valid to copy. However, these commands do not directly display the number of files to be copied; instead, they display a confirmation dialog where you can check a list of source and target file paths.
In the WinMerge menu, Merge → Copy to Right and Merge → Copy to Left behave the same way as the toolbar Copy commands.
You can use the Delete context menu item to delete selected items in either or both sides. Like other file operations, Delete has a submenu with Left, Right, and Both shortcuts.
We highly recommend that you keep the Send deleted files into Recycle Bin option enabled See Options and configuration), so that you can undo deletions in case of accidents. In addition, you should keep Recycle Bin enabled: the WinMerge option does not work if you disable the Recycle Bin in Windows. Again, you cannot undo file or folder deletion unless you use both the WinMerge Send deleted files into Recycle Bin option and the Windows Recycle Bin!
To rename a file or folder, choose Rename in its context menu or press F2. Then change the name in the edit box and press Return, or press Esc to cancel. You can only rename a single file or folder. Note that renaming changes items in both sides: it is not currently possible to rename an item on just one side.
In the context menu, you can use either Open Left and Open Right, depending on which side you want to operate on. Each Open menu item has a submenu with these shortcuts:
- with Registered Application
- with External Editor
The context menu Copy Pathname and Copy Filenames shortcuts copy the pathname or filename of selected items to the Windows clipboard. You can then paste the copied information into a file or application, for example to create a list of changed files or a change log.
Copy Pathnames has a menu with three shortcuts, similar to other file operations. It copies the full pathnames of one or more selected items to the clipboard, one per line.
Copy Filenames copies only filenames without paths.
To protect the files and folders on either side of a compare from changes, enable the File → Left Read-only or File → Right Read-only check box.
Setting the read-only option protects files and folders only in the current compare view; it does not affect their Windows file attributes.
This protected status is inherited by files that you open in the folder compare. For example, if you compare two folders, set one side read-only, and open two files for comparing, the open file on the protected side is write-protected. Similarly, you cannot copy a file from the unprotected side to the protected side.
The RO code in the left or right side's pane in the status bar (near the bottom right of the window) indicates that the side is currently read-only.
A full refresh of large folders can take a long time. In WinMerge 2.2 and earlier, you always had to do a full refresh to update files after editing them outside WinMerge. Starting in Version 2.4, WinMerge can refresh just selected items: choose Refresh from the context menu or View → Refresh Selected from the main menu.
Use the context menu Zip menu item to create a new archive file containing the items you select.
Archive support requires that you have installed the WinMerge 7-Zip plugin.
The Zip menu item has a submenu with four shortcuts:
When you select one of the Zip shortcuts, the Save As dialog prompts you for the archive filename and type. WinMerge cannot add files to existing archive files: it always creates a new archive file.
WinMerge can compare the contents of archive files that have the
same name on both sides: WinMerge looks for the
If a folder compare includes the contents of an archive file, any changes made to the included files in WinMerge (for example, using an Open file operation to edit the file) are saved in the archive file. But you cannot update archive contents by using the WinMerge Copy, Move, or Delete file operations. Instead, create a new archive file using one of the Zip shortcuts.
This section discusses ways to browse folders that are listed in a Compare Folder window. When you browse a folder, you perform a completely new compare operation. Its result overwrites the current result in the window.
Even though a nonrecursive folder compare does not include the contents of subfolders, the subfolders themselves are listed as files in the result. Similarly, the compared folder's parent folder is listed as a file at the top of the table. By opening these folders directly in the Folder Compare window, you can selectively browse a directory tree. This approach — comparing just the subdirectories you are interested in — can be more efficient than performing a recursive compare on the entire directory tree.
- Browsing the parent folder
- Browsing a single subfolder that exists on both sides
- Browsing a single subfolder that exists only one side
- Browsing two different subfolders
In WinMerge 2.6 and earlier, you could not browse to unique folders (folders that exist only in one side of a compare result), because WinMerge cannot compare an existing folder to a non-existing folder. To copy anything from a unique folder in WinMerge, you had to first create a copy of the entire folder structure.
However, you might prefer not to copy the whole folder structure. Starting in Version 2.8, WinMerge provides an alternate way to create a new, empty folder instead. This enables you to copy just the elements you want from the original, unique folder to the created empty folder. This procedure demonstrates:
Browse to the unique folder (select the folder and press Enter, double-click it, or right-click it and choose Compare). For example:
A WinMerge message informs you that the folder exists on only one side and cannot be opened. The message then prompts you to confirm whether you want to create a matching folder and open it as the other side of the compare result.
Click Yes to confirm (No cancels the compare). In the new compare result, the unique folder is opened on the left side, and the new empty created folder is on the right:
In the compare result, you can copy or move items (for example, using the right-click context menu) from the unique folder to the created folder.
This section describes how to control the way Folder Compare window displays results. You can customize the view by showing, hiding, and reordering the table columns.
The View menu contains these shortcuts to show or hide types of items. Enable (check) a menu option to show the item; disable it to hide the item.
Show Identical Items: Files detected as identical
Show Different Items: Files detected as different
Show Left Unique Items: Files and directories present only in left side
Show Right Unique Items: Files and directories present only in right side
Show Skipped Items: Files and directories omitted by file filters
Show Binary Files: Files detected as binaries
The rows in the Folder Compare window are ordered according to the sort order of a particular column. This sort column is indicated by a small arrow in its heading. The arrow points up if the column is sorted in ascending order, down if descending. The Folder Compare example at the top of this topic is sorted by the Filename column, in ascending order.
To choose another order column, simply click in that column's heading. The selected column is set to its default sort order and all the rows are reordered by that column's sort order.
To change the sort direction of a column that is already the sort column, click in its header again. That is, clicking in a sort column header reverses its order (toggling between ascending and descending order).
To modify the columns that are displayed in the Folder Compare window:
Right-click any column heading and choose Customize Columns. Or, click Tools → Customize Columns
The Display Columns dialog contains a list of all the available column names, each with a check box. Configure the columns using any combination of these actions:
Check the columns you want to display (note that selecting the item in the list is not enough)
Uncheck the columns you want to hide.
To change the order of columns, select one or more items and click Move Up or Move Down.
Click Defaults if you want to restore the default WinMerge column configuration, overriding your custom configuration.
Filename (default): Name of compared item. In a nonrecursive compare, this column includes both files and folders; in a recursive compare, it does not include folders: instead, folders are listed in the Folder column.
Folder: Path of compared subfolder, relative to the compared folder. For a nonrecursive compare this column is always empty: folders are listed in the Filename column instead.
Comparison result: Verbose comparison result (see also Short Result).
Left Date, Right Date: Modification dates of item in each side. The newer of the two dates (or the date for any unique item) is prefixed with an asterisk ( * ).
Extension: File extension, handy for sorting.
The following additional columns are available in the Display Columns dialog:
Short Result: Displays the Comparison result column in a brief (Right only) form.
Binary: Column contains an asterisk ( * ) when the file is a binary file. This is handy for sorting and for use with the Short Result column.
Left Attributes, Right Attributes: Shows file attributes.
Left Creation Time, Right Creation Time: Item creation time.
Left Encoding, Right Encoding: File encoding. Shows the codepage number for ANSI files and Unicode encoding for Unicode files.
Left File Version, Right File Version: Version number from the file, if present. Note that the version is read only for some binary file types known to usually have a version resource.
Left Size, Right Size: File size in bytes.
Left Size (Short), Right Size (Short): Shorter versions of file sizes, rounded to KB, MB, or GB.
Newer File: Shows which side is newer.
Differences: Number of differences found between files, excluding possibly ignored differences.
Ignored Diff: Number of ignored differences within files. These are differences ignored by line filters.
Left EOL, Right EOL: Shows the EOL (linefeed) style of files.
You can quickly hide one or more selected items by using the Hide Items context menu shortcut. The items remain hidden until you refresh the view (press F5) or click View → Show Hidden Items.
Get to know Hide Items: it can save you a lot of time by eliminating items that you already handled, or that are not currently of interest, from the view. For example, you might hide files after merging them, making it easier to see what items are left to merge.
If you have enabled
Add Shell menu to context menu in the Shell
Integration page of WinMerge options, you can right-click a selection in the
Folder Compare window and launch Windows shell commands directly from the
If the selection occurs on both sides, you can choose either the Left shell menu or Right shell menu; if the item occurs only on one side, only that side's shell menu is available.
Please consider that shell menu commands run entirely outside of WinMerge. Consequently, WinMerge might not respond to some operations in the same way as operations performed inside WinMerge. For example, if you delete a file through this integration instead of using the WinMerge Delete command, the change is not automatically shown in the Folder Compare window (you have to manually refresh the window to see the change).