- Kdiff3, P4Merge, and Beyond Compare are probably your best bets out of the 14 options considered. 'Free and open source' is the primary reason people pick Kdiff3 over the competition. This page is powered by a knowledgeable community that helps you make an informed decision.
- Print a list of merge tools that may be used with -tool.-y -no-prompt. Don’t prompt before each invocation of the merge resolution program. This is the default if the merge resolution program is explicitly specified with the -tool option or with the merge.tool configuration variable.-prompt.
- Launch External Merge Tool Sourcetree Not Working Mac
- Launch External Merge Tool For Sourcetree Mac Version
- Launch External Merge Tool For Sourcetree Mac Software
This is because in the Free Tier, users can only (1) Keep File (ver 1), (2) Keep File (ver 2), (3) Auto-merge, or (4) Use External Merge Tool. In addition, using External Merge Tools is very limited because GitKraken (all tiers) restricts External Merge Tools to only those it managed to Auto-detect. It also does not support custom arguments for.
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 SVNGitGit ForkIntelliJ IDEA 12Mercurial 2.4.2PerforceSmartCVSSmartGitSmartSVNSourceTreeSubversionSyncovery MacTower (Git)
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:Set in Preferences | General | External compare tool | Other Script...
Git
Git 2.3 and newer
(Note: Use bc3
on the command line for BC version 4. Caused by git legacy support from Linux.)
Launch Beyond Compare, go to the Beyond Compare menu and run Install Command Line Tools.
Diff
In a terminal: git config --global diff.tool bc3
To launch a diff using Beyond Compare, use the command: git difftool file.ext
Merge
In a terminal: git config --global merge.tool bc3
git config --global mergetool.bc3.trustExitCode true
To launch a 3-way merge using Beyond Compare, use the command: git mergetool file.ext
Older versions of Git
- Launch Beyond Compare, go to the Beyond Compare menu and run Install Command Line Tools.
- 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' - 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
- Select Preferences from the Fork menu.
- Select Integration.
- Select 'Beyond Compare' from the External Diff Tool drop down.
Merge
- Select Preferences from the Fork menu.
- Select Integration.
- 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 foldersPath to executable: /usr/local/bin/bcomp
Compare files
Launch External Merge Tool Sourcetree Not Working Mac
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.
Perforce
Launch Beyond Compare, go to the Beyond Compare menu and run Install Command Line Tools.
Diff
- Go to the P4V menu and select Preferences.
- Go to the Diff section and select Other application.
- Location:
/usr/local/bin/bcomp
- Arguments:
%1 %2
Merge
- Go to the P4V menu and select Preferences.
- Go to the Merge section and select Other application.
- Location:
/usr/local/bin/bcomp
- Arguments:
%1 %2 %b %r
SmartCVS
- Launch Beyond Compare, go to the Beyond Compare menu and run Install Command Line Tools.
- Launch SmartCVS, select Preferences | File Comparators.
- Select * in the table and click edit.
- Add
/usr/local/bin/bcomp
in Command and${leftFile} ${rightFile}
in Arguments. - Click OK.
SmartGit
Launch Beyond Compare, go to the Beyond Compare menu and run Install Command Line Tools.
Diff
- Select SmartGit | Preferences.
- Go to Tools > Diff Tools.
- Click Add.
- File Pattern: *
- Select External diff tool.
- Command:
/usr/local/bin/bcomp
- Arguments:
-readonly -lefttitle=${leftTitle} -righttitle=${rightTitle} ${leftFile} ${rightFile}
Merge
- Select SmartGit | Preferences.
- Go to Tools > Conflict Solvers.
- Click Add.
- File Pattern: *
- Select External Conflict Solver.
- Command:
/usr/local/bin/bcomp
- Arguments:
${leftFile} ${rightFile} ${baseFile} -mergeoutput=${mergedFile}
SmartSVN
- Launch Beyond Compare, go to the Beyond Compare menu and run Install Command Line Tools.
- Launch SmartSVN, select Preferences | File Comparators.
- Select * in the table and click edit.
- Add
/usr/local/bin/bcomp
in Command and${leftFile} ${rightFile}
in Arguments. - Click OK.
SourceTree
From the Beyond Compare menu, Install Command Line Tools. Then:
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:
- Select menu Syncovery/Preferences.
- Click the Misc tab.
- 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). - Click Close.
Tower (Git)
(Requires Tower 2.0.5 or newer)- Launch Beyond Compare, go to the Beyond Compare menu and run Install Command Line Tools.
- Open Tower's preferences dialog on the Git Config Tab.
- Set the Diff Tool drop-down to Beyond Compare.
- Set the Merge tool drop-down to Beyond Compare.
Customize External Source Control to Use MATLAB for Diff and Merge
Launch External Merge Tool For Sourcetree Mac Version
You can customize external source control tools to use the MATLAB® Comparison Tool for diff and merge. If you want to compare MATLAB files such as live scripts, MAT, SLX, or MDL files from your source control tool, then you can configure your source control tool to open the MATLAB Comparison Tool. The MATLAB Comparison Tool provides tools for merging MathWorks® files and is compatible with popular software configuration management and version control systems. You can use the automerge tool with Git™ to automatically merge branches that contain changes in different subsystems in the same SLX file.
To set up your source control tool to use MATLAB as the application for diff and merge, you must first determine the full paths of the mlDiff
, mlMerge
, and mlAutoMerge
executable files, and then follow the recommended steps for the source control tool you are using.
Finding the Full Paths for MATLAB Diff, Merge, and AutoMerge
To get the required file paths and enable external source control tools to reuse open MATLAB sessions, run this command in MATLAB:
Launch External Merge Tool For Sourcetree Mac Software
This command sets the MATLAB preference, under Comparison, called Allow external source control tools to use open MATLAB sessions for diffs and merges.
This command also displays the file paths to copy and paste into your source control tool setup:
On Windows®:
On Linux®:
On Mac:
where matlabroot
is replaced with the full path to your installation, for example, C:Program FilesMATLABR2020b
.
Note
Your diff and merge operations use open MATLAB sessions when available, and only open MATLAB when necessary. The operations only use the specified MATLAB installation.
Integration with Git
Command Line
To configure MATLAB diff and merge tools with command-line Git:
Run this command in MATLAB.
This command displays the full paths of the
mlDiff
,mlMerge
, andmlAutoMerge
executable files. It also automatically populates the global.gitconfig
file. For example:Note
You need to do step 1 only once for your Git setup.
Configure your repository to use the
mlAutoMerge
executable file. Open the.gitattributes
file in your repository and add:Now, when you merge branches that contain changes in different subsystems in the same SLX file, MATLAB handles the merge automatically.
To run the MATLAB diff and merge tools from command-line Git, use git difftool
and git mergetool
:
To compare two revisions of a model using the MATLAB diff tool, type:
If you do not provide revision IDs,
git difftool
compares the working copy to the repository copy.If you do not specify which model you want to compare, command-line Git will go through all modified files and ask you if you want to compare them one by one.
To resolve a merge conflict in a model using the MATLAB merge tool, type:
If you do not specify which model you want to merge, command-line Git will go through all files and ask you if you want to merge them one by one.
SourceTree
SourceTree is an interactive GUI tool that visualizes and manages Git repositories for Windows and Mac.
Configure the MATLAB diff and merge tools as SourceTree external tools:
With SourceTree open, click Tools > Options.
On the Diff tab, under External Diff / Merge, fill the fields with the following information:
Configure your repository to automerge changes in different subsystems in the same SLX file using the
mlAutoMerge
executable file:Open the global
.gitconfig
file and add:Open the
.gitattributes
file in your repository and add:
Tip
Customize the full path of the mlDiff
, mlMerge
, and mlAutoMerge
executables to match both the MATLAB installation and the operating system you are using. For more information, see Finding the Full Paths for MATLAB Diff, Merge, and AutoMerge.
To use the MATLAB diff tool from within SourceTree, right-click a modified file under Unstaged files and select External Diff.
To use the MATLAB merge tool when SourceTree detects a merge conflict, select the Uncommitted changes branch, right-click a modified file, and select Resolve Conflicts > Launch External Merge Tool.
Integration with SVN
TortoiseSVN
With TortoiseSVN, you can customize your diff and merge tools based on the file extension. For example, to use MATLAB diff and merge tools for SLX files:
Right-click in any file explorer window and select TortoiseSVN > Settings to open TortoiseSVN settings.
In the Settings sidebar, select Diff Viewer. Click to specify the diff application based on file extensions.
Click and fill the fields with the extension and the
mlDiff
executable path:Click and repeat the same steps to add another file extension.
In the Settings sidebar, select Diff ViewerMerge Tool. Click to specify the merge application based on file extensions.
Click and fill the fields with the extension and
mlMerge
executable path:Click and repeat the same steps to add another file extension.
You can now use the MATLAB tools for diff and merge the same way you would use the TortoiseSVN default diff and merge applications.
Note
Automerging binary files with SVN , such as SLX files, is not supported.
Integration with Other Source Control Tools
Perforce P4V
With Perforce® P4V, you can customize your diff and merge tools based on the file extension. To use MATLAB diff and merge tools for SLX files, for example:
In Perforce, click Edit > Preferences.
In the Preferences sidebar, select Diff. Under Specify diff application by extension (overrides default), click .
In the Add File Type dialog box, enter the following information:
Click .
In the Preferences sidebar, select Merge. Under Specify merge application by extension (overrides default), click .
In the Add File Type dialog box, enter the following information:
Click and repeat the steps for other file extensions.
Tip
Customize the full path of the mlDiff
and mlMerge
executables to match both the MATLAB installation and the operating system you are using. For more information, see Finding the Full Paths for MATLAB Diff, Merge, and AutoMerge.
You can now use the MATLAB tools for diff and merge the same way you would use the Perforce default diff and merge applications.