Launch external diff tool for diff between two commits

Justyn Bussey April 23, 2014

How do I launch the external diff tool for a diff between two commits from within SourceTree?

The diff tool is already setup in the options, and works for single files, but I would like to perform a diff between two commits.

I assumed I could just select the two commits and the right-click context menu would have an option to perform an external diff, but I do not see any option for it.

1 answer

1 accepted

0 votes
Answer accepted
Justyn Bussey April 27, 2014

Short answer

The feature isn't available out of the box as of version 1.5.2.0. Which is strange given that every other worthwhile VCS GUI I've ever used had such a feature, especially if they already support per file external diffs.

Long answer

I was able to workaround around the deficiency in SourceTree by creating a custom action with the following settings.

Menu Caption: External Diff
Script to run:
git
Parameters: difftool --dir-diff $SHA

This assumes you have an external diff tool configured properly in git and that can support directory diffs. I'm using Beyond Compare 3, so my difftool config is:

diff.tool=bc3
difftool.bc3.cmd='C:/Program Files (x86)/Beyond Compare 3/BCompare.exe' "$LOCAL" "$REMOTE"
difftool.bc3.prompt=false

The above config follows the suggestions of Timon Wong [http://theo.im/blog/2012/10/27/directory-comparison-for-git-difftool/] and Scooter Software technical support [http://www.scootersoftware.com/vbulletin/showthread.php?t=9449].

hlvtrinh May 10, 2017

The 'custom action' here doesn't work with SourceTree 2.0.20

Does anyone here know how to update it?

bfree December 21, 2017

It looks like this is option is available at least as of 2.3.5. ctrl+click on the two nodes you want to compare, and then click the gear icon on the right side below the history graph. Select 'External diff'

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events