SourceTree - external diff tool doesn't launch and conflicts disappear

Hi

I am using SourceTree with Xcode's FileMerge. This has always worked fine. Today, when I right click->resolve using external diff tool, I get a window for a second showing that the launch is happening, and then nothing and the conflict disappears as though resolved. This is really bad as I am unable to merge changes.

Going into preferences, I tried to change the diff tool, but I can't click on any of the values - everything seems to be locked.

Help?

10 answers

  • When the diff tool is not (correctly) configured, it behaves the way you described. (not very informative...)
  • In Tools\Options\General, you need to enable "Allow SourceTree to modify your global config files" at the top before you can change the Diff settings.
  • If you have the Diff / Merge tools set to "System default" (this is the default setting), it seems to never work.

So I think what you need to do is:

  1. enable the "Allow..." option
  2. change the diff tool to explicitly specify the right tool with the right cmd options

This is still not working for me. THe external diff tool does not launch!

Thanks. It work perfect

In Mac, I had to go to SourceTree/Preferences/General

 

This did not work for me. That option is checked, Diff/Merge tool is set explicitly to FileMerge (which is what it was using before it abruptly stopped working), and as recommended in another answer here, I have it set to Embedded Git rather than System Git, but none of that helped at all.

It used to work fine, and then suddenly stopped working a while back, without my having changed any configuration options whatsoever. I'm guessing it was when SourceTree automatically updated itself or something... But anyway, none of the answers in this post have helped for me.

I had the same problem, it turns out it was an Xcode problem

Run: sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

 

This worked for me

This worked for me

Yes that worked for me, using FileMerge

I have no idea what this command is doing, but it fixed my problem. Thank you.

I found changing to the Embedded Git rather than System Git fixed the problem.

this resolved my issue as well

this resolved my issue as well. I had tried with DiffMerge & Beyond Compare. Switching to System Git fixed it for me

None of these worked for me either. Using latest SourceTree with Beyond compare. It doesn't happen on every file. I don't know what the common factor is on the files that it does happen with. 

 

EDIT:

So it turns out the two files I was just trying to merge, the difference was that the file was no longer existent on the remote server. Rather than do something about the merge to show it was deleted, it just hung forever.

This was the right answer. Files no longer exist on remote server. 

Same problem here. I had to accept the user agreement in the terminal before it would launch from SourceTree. Running 'sudo opendiff' worked for me.

 This was it for me

Hi Yair,

I had the same problem.

As Balazs said, it was because the "System default" was selected for the merge tool. Download a tool and set it as your resolving tool.

If none of these things work, try running `opendiff` in the Terminal. 

It there's an error like below you need to do one of two things: 

  • Install XCode
  • Install another diff program

As of writing SourceTree supports the following programs:

  • Araxis Merge
  • Beyond Compare
  • BBEdit
  • DiffFork
  • DiffMerge
  • Changes
  • FileMerge
  • Kaleidoscope
  • KDiff3
  • P4Merge
  • TextWrangler

 

 

I had same problem.

  1. open your git global config file.
  2. check syntax error.

then I can fix the problem.

I think this is sourcetree bug.

The fix is yet to arrove but there's a workaround at https://jira.atlassian.com/browse/SRCTREE-2211

0 vote
Jeff McKnight I'm New Here Tuesday

Tested with Sourcetree v2.7.1 and DiffMerge v4.2.1 (with command line tools) on MacOS v10.13.3:

1. Open Sourcetree prefs and select `Diff` tab

2. Set `Visual Diff Tool` menu to `Custom`

3. Set `Diff command` field to: /usr/local/bin/diffmerge

4. Set `Arguments` field to: $LOCAL $REMOTE

5. Close prefs, select External Diff (or cmd-D) and observe DiffMerg launches.

 

More info here:

https://sourcegear.com/diffmerge/webhelp/sec__git__mac.html

Suggest an answer

Log in or Join to answer
Community showcase
Brian Ganninger
Published Jan 23, 2018 in Sourcetree

Tip from the team: workflow and keyboard shortcuts

Supported Platforms macOS Sourcetree has a lot to offer and, like many developer tools, finding and using it all can be a challenge, especially for a new user. Everyone might not love ...

265 views 0 3
Read article

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
Atlassian Team Tour

Join us on the Team Tour

We're bringing product updates and pro tips on teamwork to ten cities around the world.

Save your spot