Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root


1 badge earned


Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!


Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.


Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!


Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
Community Members
Community Events
Community Groups

Setup Sourcetree to use Visual Studio Code as External Diff


I'm using a Macbook Pro and have installed both Visual Studio Code (with command line) and Sourcetree.  I used sourcetree to setup the external diff tool.  And can confirm git is using it by going to a directory with changes and running "git difftool".  This will launch vscode diff on the files in the directory.  But whenever I right click a changed file in Sourcetree and select External Diff nothing happens.  I verified there are no other git config files by using:

find /my/home/dir -n ".gitconfig"


Here is my .gitconfig

editor = code --wait
tool = sourcetree
tool = sourcetree
prompt = false
[difftool "sourcetree"]
cmd = code --wait --diff $LOCAL $REMOTE
path =
[mergetool "sourcetree"]
cmd = code --wait $MERGED
trustExitCode = true


Is there some step I'm missing or something I did incorrect?

Screen Shot 2017-12-08 at 12.40.03 PM.png

2 answers

I had better success. I have to set the command as follows:


/Applications/Visual\ Studio\

The args were as above and work. Note the \ slashes to escape the spaces... without these it fails silently.

0 votes
minnsey Atlassian Team Dec 08, 2017


I think its just a case of double dashes, --wait and --diff

I noticed that after I had changed to the full name when updating the pasted config.  I had -w and -d in the file itself but I do have --wait and --diff now.  Still same result as -w and -d.

I have also tried both embedded git and installed git.

minnsey Atlassian Team Dec 08, 2017

Interesting it is working for me

I'll try completely removing sourcetree and reinstalling.  I already did the same for visual studio code.

Still not working after complete reinstall of sourcetree.  Followed these directions and even removed the app before starting over.

minnsey Atlassian Team Dec 08, 2017

No I don't think doing that to Sourcetree will change anything.

Playing around with it I followed the settings described here to get it working from the command line, then tried transposing them into the Sourcetree settings

What does your .gitconfig look like?  I saw that article and don't see where mine is different.

Should the diff show under Command History?  Because it doesn't.

minnsey Atlassian Team Dec 08, 2017

Ah, sorry my mistake I overlooked the fact you are on macOS. I'm on Windows.

I will have to try and reproduce it on there. Sorry for any confusion.

I made a simple little script to log the call and its not even logging anything.  Its as if sourcetree is not executing it at all.


/usr/local/bin$ cat
echo "Entered: " $@ >> /usr/local/bin/code.txt
/usr/local/bin/code "$@"

Have you been able to replicate on a Mac?

minnsey Atlassian Team Dec 15, 2017


Sorry for the late reply, no I cannot get it to launch on macOS at the moment. The Sourcetree setup and the manual setup in my config look the same, but while I can launch vscode via:

git difftool

I can't get it to launch via Sourcetree. I will pass it along to my macOS colleagues.

So is there any update here or like an issue that we can track? 


It's still not working with VS Code 1.28.2 and Sourcetree 3.0

I had the same problem and I got it working by using the full path to the code executable, like this: /usr/local/bin/code

Screenshot 2018-11-14 at 13.44.16.png

Like # people like this

Suggest an answer

Log in or Sign up to answer

Atlassian Community Events