Setup Sourcetree to use Visual Studio Code as External Diff
Asked by Joe Payne:

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

\[code\]  
editor = code --wait  
\[merge\]  
tool = sourcetree  
\[diff\]  
tool = sourcetree  
\[difftool\]  
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](https://community.atlassian.com/t5/image/serverpage/image-id/10688i1F2E9AE1CB3634D4/image-size/large?v=v2&px=999 "Screen Shot 2017-12-08 at 12.40.03 PM.png")


Answers:
author: DanSmith888
body: I had better success. I have to set the command as follows:

```
/Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron
```

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


author: minnsey
body: Hi  

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

comments: author: Joe Payne
body: 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.


author: Joe Payne
body: I have also tried both embedded git and installed git.


author: minnsey
body: Interesting it is working for me


author: Joe Payne
body: I'll try completely removing sourcetree and reinstalling. I already did the same for visual studio code.


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

<https://confluence.atlassian.com/sourcetreekb/how-to-wipe-sourcetree-preferences-412484640.html>


author: minnsey
body: 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  

<https://stackoverflow.com/a/36644561/1297975>


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


author: Joe Payne
body: Should the diff show under Command History? Because it doesn't.


author: minnsey
body: 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.


author: Joe Payne
body: 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 code.sh
echo "Entered: " $@ >> /usr/local/bin/code.txt
/usr/local/bin/code "$@"
```


author: Joe Payne
body: Have you been able to replicate on a Mac?


author: minnsey
body: Hi   

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.


author: G A
body: 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**


author: Zolt?n Ulrich
body: 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](https://community.atlassian.com/t5/image/serverpage/image-id/37566i7691AACEC012A37A/image-size/large?v=v2&px=999 "Screenshot 2018-11-14 at 13.44.16.png")


Tags: diff

merge

visual-studio