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.