Diff & Merge Tools

Tower comes with integrations for many Diff and Merge tools. If, however, your tool of choice is not included, you will be able to write a custom integration file.

Configuring Your Tool of Choice

It might be that your favorite diff or merge tool is not among the applications that Tower supports by default. In that case, you can write your own configuration file named "CompareTool.json" and put it into "%LOCALAPPDATA%\fournova\Tower\Settings\CompareTools\". The configuration has to be in valid JSON format and looks like this:

{
    "DisplayName":           "Beyond Compare",
    "MinimumVersion":        "4.0",
    "SupportsDiffChangeset": false,
    "SupportsDirectoryDiff": true,
    "DiffToolArguments":     "\"$LOCAL\" \"$REMOTE\"",
    "MergeToolArguments":    "\"$LOCAL\" \"$BASE\" \"$REMOTE\" \"$MERGED\"",
    "ApplicationRegistryIdentifiers": [
        "HKEY_LOCAL_MACHINE\\Software\\Scooter Software\\Beyond Compare 4\\ExePath"
    ],
    "ApplicationPaths": [
        "%ProgramW6432%\\Beyond Compare 4\\BCompare.exe",
    ]
}

Except for the DisplayName, all values can be either empty or omitted altogether.
Please make sure to properly escape commands and paths, as they're enclosed in ".

You can find the configuration files for Comparetools shipped with Tower in TowerInstallationPath\CompareTools and use them as reference.
Should you want to override a shipped configuration, simply copy it to the folder in AppData.

Detailed description for the entries

Key Type Description Default
DisplayName string The name shown in Tower's preferences none, required!
MinimumVersion string The minimum version, is displayed yet not validated ""
SupportsDiffChangeset bool The Tool can group multiple git difftool calls in one Window/Workspace false
SupportsDirectoryDiff bool The tool supports calls with the --dir-diff flag from Git Difftool false
DiffToolArguments string The arguments used to call the tool for diffing doesn't support diffing
MergeToolArguments string The arguments use to call the tool for merging doesn't support merging
ApplicationRegistryIdentifiers string[] Registry entries pointing to the tool's executable don't search in registry
ApplicationPaths string[] Filesystem locations pointing to the tool's executable don't search in filesystem



Not all tools support both diffing and merging. Please consult your external tool's manual or support team if you are not sure if it supports both.