List of Diff-Merge-Tools for the use with Ivercy

Here is a list of diff/merge-tools and how to integrate them into your workflow with Ivercy.

Use case of diff/merge

One of the benefits of using source code control is the ability to compare different versions of source files with each other. This includes comparing your own changes to the changes someone else might have made at the same time to the same file (Access object).

To efficiently visualize these differences in a file, you’ll need a diff/merge-utility.

As it is crucial functionality, there usually will be a diff merge utility included with your version control client. But if you are not satisfied with that tool, you might want to use another diff-merge-tool. There are a couple of other tools available, most of them free.

The primary configuration of your diff-merge-tool is done in the client for the SCC-System of your choice. But to make effective use of the Local Change Tracking feature, Ivercy needs to perform additional merge operations your source code control system will not know about. For this end, you need to configure a merge tool for Ivercy, in addition to the standard merge tool of the source code control client.

Ivercy Configuration

To configure the merge tool for Ivercy, start Access and navigate to the Backstage (the “File” Tab in the Ribbon). In the start screen of Access 2013 and Access 2016 click “Other Files” first, then click the Ivercy tab. Open the Ivercy Global Options dialog. Find the External Programs section and there enter the path to your favorite diff/merge-tool in the MergeProgram program setting and an appropriate command line in the MergeCommandline setting.

The tool list

Sourcegear DiffMerge

Sourcegear DiffMerge is our favorite merge tool for many years now. Its UI is clean and minimal, but everything you would normally need, is there and in plain sight. The positioning of the windows, the workflow the commands, everything is absolutely intuitive and can be used by a first time user instantly. Even if you never used any merge tool, you will understand how it works within few minutes.

Screen shot of Sourcegear DiffMerge

Despite the minimal UI, DiffMerge has many configuration options and explorer shell integration available as well.

Product website: http://sourcegear.com/diffmerge/

Sourcegear DiffMerge is not free, it costs 19$ to register, but this tool is awesome!

Example of a MergeCommandline in Ivercy’s options:

-m "{accFile}" "{baselineFile}" "{repoFile}" /result="{outputFile}" /t1="{accTitle}" /t2="{outputTitle}" /t3="{repoTitle}"

The path in MergeProgram depends on your local installation. The default path for the 32-bit-version is:

C:\Program Files (x86)\SourceGear\DiffMerge\sgdm.exe

Please note, the executable of older versions of DiffMerge was named DiffMerge.exe while newer versions are named sgdm.exe.

tf.exe

Tf.exe is the command line client to Team Foundation Server and is included in the MSSCCI-Provider setup for TFS. It includes a diff- and merge-feature as well. The visualization is done in Visual Studio, one of the reasons you need Team Explorer for the MSSCCI-Provider.

Unfortunately the diff- and merge-feature of Tf.exe only works in connection with TFS, which is not the case when invoking it for Ivercy’s additional merge-operations. So you can’t use it for that purpose.

For a consistent experience with diff-merge-operations when using Ivercy, we recommend either using vsDiffMerge, which uses Visual Studio for visualization as well, as Ivercy’s merge tool or configure a different diff-merge-tool for Ivercy and the MSSCCI-Provider to TFS. The latter can be done in the Team Explorer (Visual Studio) settings.

vsDiffMerge

vsDiffMerge is a merge tool for Visual Studio that is included with Team Explorer as well. So it is freely available without the need to have a full version of Visual Studio installed. Obviously this tool is available on Windows only.

The advantage of vsDiffMerge as well as its prime disadvantage is the visualization in Visual Studio. It is an advantage because it is a familiar and powerful environment, but on the other hand, Visual Studio takes some time to start.

Download page for Team Explorer (2013): http://www.microsoft.com/en-US/download/details.aspx?id=40776

To use vsDiffMerge with the Ivercy local merge feature please enter these values into the Ivercy configuration

Example of a MergeCommandline:

/m "{repoFile}" "{accFile}" "{baselineFile}" “{outputFile}"

MergeProgram:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\vsDiffMerge.exe

The path obviously depends on your installation path of Visual Studio or Team Explorer. Pay attention to the version number in the path!

This command line should work with all versions of vsDiffMerge from 2012 to 2015. However, we experienced that it does not work (fails without error message) with some versions of the VS2013 vsDiffMerge. (We believe this to be a defect in those versions of vsDiffMerge and currently we do not have instructions on how to resolve this issue.)

KDiff3

KDiff3 is a powerful open-source diff/merge-Tool released under the GPL. It supports automatic as well as (forced) manual merge, Explorer integration and many other features. KDiff3 runs on Windows as well as any UNIX based operating system including Apple OSX.

The most remarkable thing about Kdiff3 is its incredible fast startup time and its good automatic merge feature. – But we are not impressed with the usability during manual merge operations.

Product website: http://kdiff3.sourceforge.net/

Example of a working MergeCommandline in Ivercy’s options:

"{baselineFile}" "{accFile}" "{repoFile}" -o "{outputFile}" --L1 "Baseline file" --L2 "{accTitle}" --L3 "{repoTitle}" -m

The path in MergeProgram depends on your local installation. The default path is:

C:\Program Files\KDiff3\kdiff3.exe

winMerge

winMerge is another open-source diff/merge-tool hosted on SourceForge. It has many features, including archive (ZIP) file support and explorer shell integration.

Win merge is not showing the result file in a separate window. Instead you need to modify one of the input files to match the other. But, if an output file is supplied on the command line, as in our example, it will be written as well. – This seems to be very unintuitive for us and obviously makes it impossible to see the original code line after you merged it with the other file.

Product website: http://winmerge.org/

WinMerge does not support the use of a baseline file (common ancestor). It still can be used as merge tool for Ivercy. Here’s an example of a MergeCommandline in Ivercy’s options:

/dl "{accTitle}" /dr "{repoTitle}" "{accFile}" "{repoFile}" "{outputFile}"

This is the default path on Windows x64 for the MergeCommand option:

C:\Program Files (x86)\WinMerge\WinMergeU.exe

Others

This list is by no means complete. There are lots of other tools out there. Most (if not all) of them should be usable with Ivercy.