Configuring Git Integration in OS X Mavericks (10.9)

OS X Mavericks introduced changes to sandboxing that cause the integration method used by Kaleidoscope 2 to fail. We are researching a fix for this, but in the meantime, you can use either of the following methods to configure Git integration with Kaleidoscope:

  1. Kaleidoscope uses scripts to add the required settings to your ~/.gitconfig. These scripts are included in the app bundle and can be run manually which should bypass the sandbox error. The path to the scripts is:

    /Applications/Kaleidoscope.app/Contents/Resources/Integration/scripts/

    Run install_git-default to configure Kaleidoscope as your default tool or install_git-normal to set it up as an optional tool. Uninstall scripts are also provided at the same path.

  2. If you prefer, you can manually add the configuration settings to your ~/.gitconfig file.

  • To use Kaleidoscope as the default tool, add the following to ~/.gitconfig

    [difftool "Kaleidoscope"]
        cmd = ksdiff --partial-changeset --relative-path \"$MERGED\" -- \"$LOCAL\" \"$REMOTE\"
    [diff]
        tool = Kaleidoscope
    [difftool]
        prompt = false
    [mergetool "Kaleidoscope"]
        cmd = ksdiff --merge --output \"$MERGED\" --base \"$BASE\" -- \"$LOCAL\" --snapshot \"$REMOTE\" --snapshot
        trustExitCode = true
    [mergetool]
        prompt = false
    [merge]
        tool = Kaleidoscope
    
  • To use Kaleidoscope as an optional tool, without making it the default, use:

    [difftool "Kaleidoscope"]
        cmd = ksdiff --partial-changeset --relative-path \"$MERGED\" -- \"$LOCAL\" \"$REMOTE\"
    [mergetool "Kaleidoscope"]
        cmd = ksdiff --merge --output \"$MERGED\" --base \"$BASE\" -- \"$LOCAL\" --snapshot \"$REMOTE\" —snapshot
        trustExitCode = true