Upcoming Events
Workshop on Network and Systems Support for Games (NetGames 2009)
11/23 - 11/25 @ Paris, France

LOOP 2009
11/26 - 11/29  

EVA 2009
12/4 - 12/5 @ Buenos Aires, Argentina

ICIDS 2009 Interactive Storytelling
12/9 - 12/11 @ Guimarães, Portugal

More events...


Quick Stats
6140 people currently visiting GDNet.
2341 articles in the reference section.

Help us fight cancer!
Join SETI Team GDNet!



Link to us

Link to us

Home » Features » Product Reviews » WinMerge
  Intel sponsors gamedev.net search:   

Product Reviews
Jump to:
Software
All product reviews

Product: WinMerge
Developer: Thingamahoochie Software
Reviewer: Stefan Maton
Posted: May 27, 2009
Rating:
Discuss this review

WinMerge
by Stefan Maton

Whenever you're working with source codes in a source code repository or other files spread around in a network, you might have encountered the situation that you had to compare two folder structures or two files in order to determinate what has been changed and what to copy from A to B.

WinMerge is one of those tools that can help you to get a better overview of those changes.

The tested version of WinMerge is 2.12.2.

Integration and functions

WinMerge does not directly integrate into Visual Studio. Nevertheless, if you're using a source code repository, it should be possible to configure your repository provider (SCC) to use WinMerge as the default diff-tool.

If you don't already know which files in your source tree have changed, a good idea is to get an overview of the folders that contain changes. To do so, you right-click in you file browser to display the context menu where you'll find an entry for WinMerge. Clicking onto that entry opens WinMerge.

Contextmenu.jpg
Picture 1 The context menu containing the WinMerge entry

It opens with the Select Files or Folders dialog, which lets you select a second folder which is then used to compare. To narrow down the number of files to compare, you can either select one of the pre-defined filters or create your own file filter.

SelectFiles.jpg
Picture 2 Select the second folder in this dialog

FileFilter.jpg
Picture 3 Select one of the many file filters to narrow down the number of files to compare

Make sure to check the Include Subfolders to include the complete source code tree and not only the currently selected folders. OK starts the compare process which finally will show the list of files that differ in the two locations.

This first overview of the files that differ is not as I would like to see it. In fact, while the view itself can be altered and filtered through the View menu of the window, the list itself is not very clear. If you take a look at picture 4, you'll see the root folder names on disk F and J. But the information concerning the files of those root folders is not underneath the top folder display. In fact, the list of Filename, Folder, Dates, etc does not change when you change your window size but remains static.

This results into having information such as the Right Date column not being underneath the right folder name. If you, as I do, adjust constantly the window size to get as much information as possible onto your screen using different applications, it's impossible to distinguish clearly which information belongs where with a short glimpse. You really have to concentrate onto the view and read each line to grasp the information.

FileDiff1.jpg
Picture 4 The file overview is not as clear as it could be.

I'd not say that the folder compare is useless, but not getting a clear idea fast is somewhat disturbing. Nevertheless, you can regroup the information using the report header to i.e. group them by comparison result.

While there are some icons concerning the compare result of a file (i.e. icons for identical files, differing files, etc.), they are on the very left of the compare result line. A better solution for this view would have been to clearly separate the left and right folder information and use some bigger icons in between them to depict the compare result.

Via the toolbar on the top of the window, you can copy files from left to right or the other way around.

The folder compare result can be used to directly access the files that are different. If you double click onto a file, the files within the two locations are opened in a new tab containing the diff view. Using tabs to manage different compares is a smart choice here because you can quickly jump between i.e. the folder compare and the file compare.

The diff view has nothing spectacular. On the left you can see the location pane, on the right the file diff.

FileDiff2.jpg
Picture 5 Comparing two files

WinMerge tries to match the lines of the two files by filling the missing lines with empty space. The result is that similar lines are side-by-side. However sometimes, in complex files, this fails when a lot of changes have occurred and the result is a total mess to read where you have to compare line by line to understand what is actually happening on screen.

What I like is the fact that the diff is coded through different colours. This way you can clearly distinguish moved lines, word and line differences. Copying part of the file difference is as easy as selecting the difference through double clicking onto it and clicking Copy left or Copy right in the top menu.

The view also enables you to directly alter the file. A simple click to a location shows the cursor and you can start typing. Unfortunately, before you can see the difference that your newly entered text makes, you have to click refresh in the tool menu. It doesn't display the appropriate colouring as long as you type.

Options

WinMerge has a quite extensive list of options that can help you to configure it the way you want. From syntax highlighting and difference colouring to configuring a version control or the shell integration almost everything is optional.

Options.jpg
Picture 6 The options

Unfortunately you cannot alter information such as the default font or its default size. This option is only available once you directly compare two files and you use the View menu and select the Zoom entries (or the key combinations) or the Set font menu point. I'd rather search for this option in the Options instead of the View menu.

Pricing

WinMerge is an open source project and thus, it comes with no costs. It's licensed under the GNU General Public License.

Pros:

Cons:

Links: