SourceTree equivalent of git diff master...feature

Hi,

I love the SourceTree diff UI but I need to diff the common ancestor of two branches. In git, the command for this is:

git diff master...feature

Where 'feature' is some feature branch head. Note the triple-dot notation. This means that you want not the difference between the heads of "master" and "feature" but the difference between the common ancestor of "master" and "feature" and the head of "feature".

Is there a way to do this?

Thanks

--Erik

1 answer

1 accepted

In SourceTree you can diff any 2 points in history just by Cmd-clicking to select two commit lines in the log view - the differences between those 2 commits, wherever they are, is then displayed. So that includes diffing the common ancestor and the head of the feature branch. However, right now you have to find this common anscestor in the log yourself, there's no automated selection of it.

Thanks, I didn't realize you can cmd-click to diff two commits. I noticed it also displays diff output when more than two are selected-- what exactly is it showing?

It shows the difference between the outermost selected rows. This is just for convenience in case you use Shift-click instead of Cmd-click.

Steve, thanks a lot for all the help. Sorry, there's one last thing I've never understood. When you click on a single commit, obviously it's showing the diff between that commit and its parent. But when the commit is a merge commit, there are two parents. So what does it display then? (I suppose this is more of a fundamental git question than SourceTree...)

At the top of the diff pane in the log view is a pop-up list which says 'Diff Parent' by default. When you select a merge commit, selecting 'Diff Merged' there instead will display the differences to the merged commit rather than the first parent.

In gitk, I can ask between the difference between any two commits - that they are one the ancestor of the other, or not. In SourceTree, this is not possible then? The shift-click trick works only for commits related by an ancestry relation, right?

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Posted 3 hours ago in Off-topic

Miscellaneous Monday - CreatatronV3

You may remember, not so long ago, that together we invented the most evil of machines: The Destructo5000!  The effects of missing Durian rippled over nations. Complete chaos as goat chee...

43 views 3 2
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you