Tower Help & Support

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 Default
`DisplayName` string none, required!
The name shown in Tower's preferences

`MinimumVersion` String ""
The minimum version, is displayed yet not validated

`SupportsDiffChangeset` bool `false`
The Tool can group multiple `git difftool` calls in one Window/Workspace

`SupportsDirectoryDiff` bool `false`
The tool supports calls with the `--dir-diff` flag from Git Difftool

`DiffToolArguments` string doesn't support diffing
The arguments used to call the tool for diffing

`MergeToolArguments` string doesn't support merging
The arguments use to call the tool for merging

`ApplicationRegistryIdentifiers` string don't search in registry
Registry entries pointing to the tool's executable

`ApplicationPaths` string don't search in filesystem
Filesystem locations pointing to the tool's executable

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.