SourceTree / Kaleidoscope mergetool behavior broken

Warren Dodge April 18, 2016

For the last several months there has been a problem with the integration between SourceTree and Kaleidoscope. This is not the launching problem with 2.2.* – Kaleidoscope is launching correctly. What happens is this:

  • Kaleidoscope integrations are set up: ksdiff & git difftool/mergetools
  • SourceTree is set to use Kaleidoscope as its difftool & mergetool
  • Have a file with merge conflicts
  • Launch external merge tool from SourceTree to resolve the conflicts
  • Make changes in Kaleidoscope & save
  • (check the files on disk and note that Kaleidoscope has saved the changes to the file correctly)
  • Quit Kaleidoscope
  • SourceTree cleans up the temporary files and returns the conflicted file to its previous unedited state with conflict markers

Configuring SourceTree to use FileMerge as the difftool/mergetool works fine.

Any ideas how to fix this? Thanks!

 

Warren

1 answer

0 votes
Warren Dodge April 29, 2016

SourceTree sets up the .gitconfig file with this entry for Kaleidoscope:

[mergetool "sourcetree"]
    cmd = /usr/local/bin/ksdiff --merge --output \"$MERGED\" --base \"$BASE\" -- \"$LOCAL\" --snapshot \"$REMOTE\" --snapshot
    trustExitCode = true

 

But it appears that ksdiff's exit code cannot be trusted. Changing the entry to the following makes everything work fine.

[mergetool "sourcetree"]
	cmd = /usr/local/bin/ksdiff --merge --output \"$MERGED\" --base \"$BASE\" -- \"$LOCAL\" --snapshot \"$REMOTE\" --snapshot
	trustExitCode = false

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events