Using Beyond Compare with Version Control Systems (macOS)

Mac logo macOS only

Beyond Compare can be configured as the external difference utility in many popular VCS applications.  The following are configuration instructions submitted by our users.  Let us know if you have one to add to the list.

Index:


Cornerstone SVN

In Cornerstone, you can specify a custom external compare script.

Launch Beyond Compare, go to the Beyond Compare menu and run Install Command Line Tools.

DIFF

Create an AppleScript wrapper for use by Cornerstone:
-- Cornerstone executes the script as:
-- /path/to/tool <original> <modified>
--
on run argv
  set original_path to (item 1 of argv)
  set modified_path to (item 3 of argv)
  do shell script "/usr/local/bin/bcomp \"" & original_path & "\" \"" & modified_path & "\""
end run

Set in Preferences | General | External compare tool | Other Script...


Git

Git 2.3 and newer

Launch Beyond Compare, go to the Beyond Compare menu and run Install Command Line Tools.

Diff

In a terminal:
git config --global diff.tool bc

To launch a diff using Beyond Compare, use the command:  git difftool file.ext

Merge Pro only

In a terminal:
git config --global merge.tool bc
git config --global mergetool.bc.trustExitCode true

To launch a 3-way merge using Beyond Compare, use the command:  git mergetool file.ext


Older versions of Git

  1. Launch Beyond Compare, go to the Beyond Compare menu and run Install Command Line Tools.
  2. Add the following lines to $HOME/.gitconfig:
    [diff]
      tool = bcomp
    [difftool]
      prompt = false
    [difftool "bcomp"]
      trustExitCode = true
      cmd = "/usr/local/bin/bcomp" \"$LOCAL\" \"$REMOTE\"
    [merge]
      tool = bcomp
    [mergetool]
      prompt = false
    [mergetool "bcomp"]
      trustExitCode = true
      cmd = "/usr/local/bin/bcomp" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"
  3. To launch a diff in Beyond Compare, use:  git difftool file.ext
    To launch a merge in Beyond Compare, use:  git mergetool file.ext

Git Fork

Launch Beyond Compare, go to the Beyond Compare menu and run Install Command Line Tools.

Diff

  1. Select Preferences from the Fork menu.
  2. Select Integration.
  3. Select "Beyond Compare" from the External Diff Tool drop down.

Merge Pro only

  1. Select Preferences from the Fork menu.
  2. Select Integration.
  3. Select "Beyond Compare" from the Merge Tool drop down.

IntelliJ IDEA

(Potentially, also RubyMine, Webstorm, PyCharm, PhpStorm)

The first step is to launch Beyond Compare, go to the Beyond Compare menu and run Install Command Line Tools.

In IntelliJ's Settings dialog, under IDE Settings, select the External Diff Tools section:

Compare folders
Path to executable: /usr/local/bin/bcomp

Compare files
Path to executable: /usr/local/bin/bcomp

Merge tool
Path to executable: /usr/local/bin/bcomp
Parameters: %1 %2 %3 %4

Mercurial 2.4.2

Launch Beyond Compare, go to the Beyond Compare menu and run Install Command Line Tools.

[ui]
merge = bcomp

[extensions]
extdiff =

[extdiff]
cmd.bcomp = /usr/local/bin/bcomp
#opts.bcomp = -ro

[merge-tools]
bcomp.executable = /usr/local/bin/bcomp
bcomp.args = $local $other $base $output
bcomp.priority = 1
bcomp.premerge = True
bcomp.gui = True

Perforce

Launch Beyond Compare, go to the Beyond Compare menu and run Install Command Line Tools.

Diff

  1. Go to the P4V menu and select Preferences.
  2. Go to the Diff section and select Other application.
  3. Location: /usr/local/bin/bcomp
  4. Arguments: %1 %2

Merge

  1. Go to the P4V menu and select Preferences.
  2. Go to the Merge section and select Other application.
  3. Location: /usr/local/bin/bcomp
  4. Arguments: %1 %2 %b %r

SmartCVS

  1. Launch Beyond Compare, go to the Beyond Compare menu and run Install Command Line Tools.
  2. Launch SmartCVS, select Preferences | File Comparators.
  3. Select * in the table and click edit.
  4. Add /usr/local/bin/bcomp in Command and ${leftFile} ${rightFile} in Arguments.
  5. Click OK.

SmartGit

Launch Beyond Compare, go to the Beyond Compare menu and run Install Command Line Tools.

Diff

  1. Select SmartGit | Preferences.
  2. Go to Tools > Diff Tools.
  3. Click Add.
  4. File Pattern: *
  5. Select External diff tool.
  6. Command: /usr/local/bin/bcomp
  7. Arguments: -readonly -lefttitle=${leftTitle} -righttitle=${rightTitle} ${leftFile} ${rightFile}

Merge Pro only

  1. Select SmartGit | Preferences.
  2. Go to Tools > Conflict Solvers.
  3. Click Add.
  4. File Pattern: *
  5. Select External Conflict Solver.
  6. Command: /usr/local/bin/bcomp
  7. Arguments: ${leftFile} ${rightFile} ${baseFile} -mergeoutput=${mergedFile}

SmartSVN

  1. Launch Beyond Compare, go to the Beyond Compare menu and run Install Command Line Tools.
  2. Launch SmartSVN, select Preferences | File Comparators.
  3. Select * in the table and click edit.
  4. Add /usr/local/bin/bcomp in Command and ${leftFile} ${rightFile} in Arguments.
  5. Click OK.

SourceTree

From the Beyond Compare menu, Install Command Line Tools.  Then:

Visual Diff Tool: Other
Diff Command:/usr/local/bin/bcomp
Parameters:-ro $LOCAL $REMOTE
Merge Tool: Other
Merge Command:/usr/local/bin/bcomp
Parameters:$LOCAL $REMOTE $BASE $MERGED

Subversion

Launch Beyond Compare, go to the Beyond Compare menu and run Install Command Line Tools.

Diff

Create a file named /usr/local/bin/bcdiff.sh and allow execute permissions (chmod +x).  Add the following lines:
/usr/local/bin/bcomp "$6" "$7" -title1="$3" -title2="$5" -readonly
exit 0

Edit $HOME/.subversion/config and add the line diff-cmd = /usr/local/bin/bcdiff.sh in [Helpers].

Merge

Create a file named /usr/local/bin/bcmerge.sh and allow execute permissions (chmod +x).  Add the following line:
/usr/local/bin/bcomp "$2" "$3" "$1" "$4"

Edit $HOME/.subversion/config and add the line merge-tool-cmd = /usr/local/bin/bcmerge.sh in [Helpers].


Syncovery Mac

The first step is to launch Beyond Compare, go to the Beyond Compare menu and run Install Command Line Tools.

Then to configure Syncovery:

  1. Select menu Syncovery/Preferences.
  2. Click the Misc tab.
  3. In the field Program used to compare files from the Sync Preview, write /usr/local/bin/bcompare (or the pathname given when using BC4's Install Command Line Tools).
  4. Click Close.

Tower (Git)

(Requires Tower 2.0.5 or newer)
  1. Launch Beyond Compare, go to the Beyond Compare menu and run Install Command Line Tools.
  2. Open Tower's preferences dialog on the Git Config Tab.
  3. Set the Diff Tool drop-down to Beyond Compare.
  4. Set the Merge tool drop-down to Beyond Compare.