Diff & Merge Tools
Tower allows you to view diffs as well as solve merge conflicts right from within its interface. However, it often makes sense to use a dedicated Diff or Merge tool application for these jobs.
Configuring a Supported Tool
Tower offers direct integrations for a lot of diff and merge tools.
To configure an external application for these purposes, you need to open Tower's preferences dialog on the "Git Config" tab. Here, you can choose one of the supported tools that are installed on your machine.
If you encounter any problems, please see below for a detailed troubleshooting guide as well as notes on individual tools.
If your tool of choice is not supported, please have a look at our instructions on how to write a custom integration script.
Comparing Many Files at Once
When comparing whole revisions with each other (e.g. two branches or a revision with its predecessor) many changed files are involved. In this situation, the "git difftool" command sends changes for every file to the diff tool in the background.
However, not all diff tools can handle this scenario; some react badly by opening just the first of the involved files - and show the next one only after being quit.
If your tool reacts in this unpleasant way, you might still get an acceptable workflow by turning on the "Perform directory diff" option in Tower's preferences on the "Git Config" tab.
Troubleshooting Problems with External Tools
When connecting with an external tool, Tower simply calls the standard Git commands for these situations in the background ("git difftool" resp. "git mergetool"). If - despite this very simple behavior - problems should occur, here are some hints for troubleshooting.
- Please install the latest version of the tool.
- Please make sure to also install any command line helper tools that it may require.
- Please quit the tool completely before opening it from within Tower.
- If you're trying to use the tool for merging, please make sure that it indeed fully supports this.
Testing General Functionality of an External Tool
- Select the appropriate diff or merge tool in Tower's preferences
- Open Terminal.app
- Change into the repository directory
- Open .git/config file and confirm an existing section [difftool "tower"] or [mergetool "tower"]
- Run "git difftool --tool=tower FILEPATH" or "git mergetool --tool=tower FILEPATH"
Now, either the tool should open or Terminal.app should provide an error message - which might be helpful for finding the problem.
Please make sure to have the tool's latest version installed. See below for special instructions for individual tools.
Araxis Merge supports merging. Requires installation of the Araxis command line tools (from the Utilities folder of the Disk image to /usr/local/bin).
BBEdit does not support merging. If you have installed BBEdit from the AppStore, the command line tools are not included by default. However, they are essential for use with Git and Tower. Please download the command line tools from the BareBones software website.
Beyond Compare supports merging. Requires installation of the Beyond Compare command line tools (see "Install Command Line Tools…" item in the "Beyond Compare" main menu).
Changes does not support merging.
DeltaWalker supports merging.
DiffMerge supports merging.
Since version 2, Kaleidoscope supports merging. The "ksdiff" command line tool needs to be installed (see "Integration" in Kaleidoscope's application menu).
P4Merge supports merging.
Textmate does not support merging. You can use it as diff result viewer for the /usr/bin/diff command line tool.
TextWrangler does not support merging. If you have installed TextWrangler from the AppStore, the command line tools are not included by default. However, they are essential for use with Git and Tower. Please download the command line tools from the BareBones software website.