Using Beyond Compare with Version Control Systems
Beyond Compare can be configured as the external difference utility in many popular VCS applications. The following are configuration instructions for specific products. Let us know if you have one to add to the list.
Beyond Compare v3: These examples are based on Beyond Compare 3
Beyond Compare v2: To use Beyond Compare 2 replace BComp.exe
with BC2.exe
and change the path to Beyond Compare 2's install folder.
AnkhSVN
Visual Studio 2008
- Open Visual Studio.
- Select AnkhSVN from the Tools menu.
- Select Edit the AnkhSVN Configuration.
- In the DiffExePath box, enter the following:
"C:\Program Files\Beyond Compare 3\BComp.exe" "%base" "%mine" /fv /title1="%base" /title2="%mine" /leftreadonly
Visual Studio 2005
- Open Visual Studio.
- Select Tools from the Options menu.
- Under Source Control click on Subversion.
- In the External diff path box, enter the following:
"C:\Program Files\Beyond Compare 3\BComp.exe" "%base" "%mine" /fv /title1="%base" /title2="%mine" /leftreadonly
CA Harvest Change Manager
- Open the Workbench.
- Select Options from the Tools menu.
- Switch to the Merge Tool tab in the Options dialog.
- Select "Beyond Compare" in the ToolName drop-down.
- Enter the complete path to your BComp.exe in the Compare, 2-way Merge, and 3-way Merge fields.
CompareBComp.exe /readonly $(File1) $(File2)
2-way MergeBComp.exe $(TrunkFile) $(BranchFile) /mergeoutput=$(ResultsFile)
3-way Merge (v3 Pro)BComp.exe $(TrunkFile) $(BranchFile) $(AncestorFile) $(ResultsFile)
ClearCase
- Go into the "C:\Program Files\Rational\ClearCase\lib\mgrs" folder.
- Create a backup of the file named "map".
- Edit "map" and edit the following lines to point to Beyond Compare:
text_file_delta compare C:\Program Files\Beyond Compare 3\BComp.exe
text_file_delta xcompare C:\Program Files\Beyond Compare 3\BComp.exe
text_file_delta merge C:\Program Files\Beyond Compare 3\BComp.exe
text_file_delta xmerge C:\Program Files\Beyond Compare 3\BComp.exe
Make the same change to lines beginning with _html
, _xml
, _html2
, _xml2
to use Beyond Compare for HTML and XML comparisons.
To use Beyond Compare 2, only change the xcompare
line of the map file. Overriding compare
, merge
, and xmerge
is not supported. A helper that improves BC2's support is available here.
Code Co-op
Visit Reliable Software for details on using Beyond Compare with Code Co-op. Reliable Software offers a discounted bundle of the two products.
CS-RCS
- Choose Settings from the Document Explorer's Project menu.
- Switch to the File Types tab.
- Click the Default button.
- Change the Difference Analysis Tool to "Custom Tool".
- Enter the path to BComp.exe in the Difference Analysis Tool edit.
CVS
CVS does not support external diff or merge tools.
Dimensions CM / PVCS
BC version 3:
- Navigate to the Dimensions / PVCS install folder and find the file
pvcsmerge.exe
and rename it topvcsmerge.exe.exe
. - Copy
bcomp.exe
fromC:\Program Files\Beyond Compare 3
into the Dimensions folder and rename it topvcsmerge.exe
.
In Dimensions CM 10 you can edit your native.properties
file instead. The integration isn't as complete in that case, so file format/rules matching don't work correctly and folder comparisons aren't supported.
BC version 2:
Follow the instructions above, but instead of using BComp.exe
use the copy of pvcsmerge.exe
in pvcsmergev8.zip for PVCS 6.8, 8.0, and Merant Dimensions 8, or in pvcsmerge75.zip for PVCS 7.5.
Eclipse IDE
Launch Beyond Compare from the Eclipse IDE using the Beyond CVS plug-in by Chris Callandar and Nick Boldt.
FreeVCS
- Choose Properties in the Project Manager's Options menu.
- Switch to the Compare Tools panel.
- Click the Add Custom button.
- Enter "Beyond Compare" as the new name.
- Click the Edit button.
- Enter the path to BComp.exe in the File compare utility edit.
- Enter %1 %2 in the Command line parameter string edit.
git
Diff
- Create a shell script file "git-diff-wrapper.sh" with the following content:
#!/bin/sh
# diff is called by git with 7 parameters:
# path old-file old-hex old-mode new-file new-hex new-mode
"<path_to_bc3_executable>" "$2" "$5" | cat - In a console window enter the command:
$ git config --global diff.external <path_to_wrapper_script>
3-Way Merge (v3 Pro)
In a console window enter the following three commands:
$ git config --global merge.tool bc3
$ git config --global mergetool.bc3.cmd "`which bcompare` '\$LOCAL'
'\$REMOTE' '\$BASE' '\$MERGED'"
$ git config --global mergetool.bc3.trustExitCode true
2-Way Merge (v3 Std, v2)
In a console window enter the following three commands:
$ git config --global merge.tool bc3
$ git config --global mergetool.bc3.cmd "`which bcompare` '\$LOCAL'
'\$REMOTE' -savetarget='\$MERGED'"
$ git config --global mergetool.bc3.trustExitCode true
Microsoft Team Foundation Server
Diff
- In Visual Studio Choose Options from the File menu.
- Expand Source Control in the treeview.
- Click Visual Studio Team Foundation Server in the treeview.
- Click the Configure User Tools button.
- Click the Add button.
- Enter ".*" in the Extension edit.
- Choose Compare in the Operation combobox.
- Enter the path to BComp.exe in the Command edit.
- In the Arguments edit, use:
%1 %2 /title1=%6 /title2=%7
3-Way Merge (v3 Pro)
- Follow steps 1-6 above.
- Choose Merge in the Operation combobox.
- Enter the path to BComp.exe in the Command edit.
- In the Arguments edit, use:
%1 %2 %3 %4 /title1=%6 /title2=%7 /title3=%8 /title4=%9
2-Way Merge (v3 Std, v2)
Use the same steps as the 3-way merge above, but use the command line:%1 %2 /savetarget=%4 /title1=%6 /title2=%7
Microsoft Visual Studio 2005 with Visual SourceSafe 2005
Supported for "Microsoft Visual SourceSafe" plug-in. The "Microsoft Visual SourceSafe (Internet)" plug-in does not support external diff tools.
- Open Visual Studio 2005.
- Select Options from the Tools menu.
- Select Plug-In Settings under the Source Control branch of the left-side tree control.
- Select Visual SourceSafe under Plug-In Settings on the right-hand pane.
- Press the Advanced button.
- Select the Custom Editor tab in the "SourceSafe Options" pane.
- Select File Difference in the Operation drop-down.
- Enter ".*" in the File Extension edit.
- Enter this in the Command Line edit:
"C:\Program Files\Beyond Compare 3\bcomp.exe" %1 %2
- Click the Add button and close all dialog boxes.
MKS Source Integrity
Diff
- Start MKS Source Integrity.
- Go to Tools | Preferences | DiffTool.
- Select Custom Command.
- Enter the command:
"C:\Program Files\Beyond Compare 3\BComp.exe" /title1="{1}" /title2="{2}" "{3}" "{4}"
3-Way Merge (v3 Pro)
Use this for the merge tool command line: 2-Way Merge (v3 Std, v2) Use this for the merge tool command line: P4V (The Perforce Visual Client)
Beyond Compare 1.9 is the default external difference utility in SourceOffsite Collaborative Edition. To upgrade to Beyond Compare 3 follow the instructions above. Diff 3-Way Merge (v3 Pro) 2-Way Merge (v3 Std, v2) Use the same steps as the 3-way merge above, but use the options: Windows
Cygwin (http://www.cygwin.com/)
Instead of using a batch file, create a file named "bc.sh" with the following line: Linux Diff: Create a file named /usr/bin/bcdiff.sh with the following line: Edit "$HOME/.subversion/config" and add the line "diff-cmd = /usr/bin/bcdiff.sh". Merge: Create a file named /usr/bin/bcmerge.sh with the following line: Edit "$HOME/.subversion/config" and add the line "merge-tool-cmd = /usr/bin/bcmerge.sh". To configure TortoiseHg you need to edit the file Diff 3-Way Merge (v3 Pro) Diff To use Beyond Compare for image comparisons either replace the file C:\Program Files\TortoiseSVN\bin\TortoiseIDiff.exe with a copy of BComp.exe, or click the Advanced... button on the Diff Viewer tab and add each image type's extension with the same command line as above. 3-Way Merge (v3 Pro) 2-Way Merge (v3 Std, v2) Use the same steps as above, but use the command line: Diff 3-Way Merge (v3 Pro) 2-Way Merge (v3 Std, v2) Use the same steps as above, but set the Arguments setting to: Diff Merge Visual SourceSafe 6.0 and earlier do not support external difference utilities. SourceOffsite and VersionMaster can both use Beyond Compare in combination with SourceSafe. Source Link:http://www.scootersoftware.com/download.php?c=kb_vcs"C:\Program Files\Beyond Compare 3\BComp.exe" /title1="{1}" /title2="{2}" /title3="{0}" "{5}" "{6}" "{4}" "{7}"
"C:\Program Files\Beyond Compare 3\BComp.exe" /title1="{1}" /title2="{2}" "{5}" "{6}" /savetarget="{7}"
Perforce
%1 %2 %b %r /lefttitle="%T" /righttitle="%Y"
QVCS
C:\Progra~1\Beyond~1\BComp.exe "%s" "%s"
Roundtable TSMS
ASSIGN Mexe = SEARCH("visdiff/visdiff.exe").
to:ASSIGN Mexe = SEARCH("C:\Progra~1\Beyond~1\bcomp.exe").
SourceAnyWhere for VSS
c:\program files\beyond compare 3\bcomp.exe
/readonly /title1="%FIRST_LABEL%" /title2="%SECOND_LABEL%" "%FIRST_FILE%" "%SECOND_FILE%"
"%FIRST_DIR%" "%SECOND_DIR%"
/leftreadonly /title1="%FIRST_LABEL%" /title2="%SECOND_LABEL%" "%FIRST_FILE%" "%SECOND_FILE%"
SourceOffsite
StarTeam
$file1 $file2
$usertip $branchtip $basefile /mergeoutput=$resultfile
$usertip $branchtip /savetarget=$resultfile
Subversion
"C:\Progra~1\Beyond~1\bcomp.exe" "%6" /title1=%3 "%7" /title2=%5
# [helpers]
# diff-cmd = diff_program (diff, gdiff, etc.)
to:[helpers]
diff-cmd = C:\Progra~1\Beyond~1\svn.bat
"$(cygpath 'C:\Progra~1\Beyond~1\bcomp.exe')" `cygpath -w "$6"` `cygpath -w "$7"` /title1="$3" /title2="$5" /readonly
/usr/bin/bcompare "$6" "$7" -title1="$3" -title2="$5" -readonly
/usr/bin/bcompare "$2" "$3" "$1" $4"
Surround SCM
Team Coherence
Telelogic Synergy
Compare_cmd = C:\Progra~1\Beyond~1\bcomp.exe %file1 %file2 /lefttitle=%file1_label /righttitle=%file2_label
merge_cmd = C:\Program~1\Beyond~1\bcomp.exe %file1 %file2 %ancestor /mergeoutput=%outfile /lefttitle=%file1_label /righttitle=%file2_label
TortoiseCVS
TortoiseHg
%USERPROFILE%\Mercurial.ini
. Add the following lines, using existing INI sections if they already exist:
[extdiff]
cmd.bcomp = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bcomp = /ro
[tortoisehg]
vdiff = bcomp [merge-tools]
bcomp.executable = C:\Program Files\Beyond Compare 3\BComp
bcomp.args = $local $other $base $output
bcomp.priority = 1
[ui]
merge = bcomp
TortoiseSVN
"C:\Program Files\Beyond Compare 3\BComp.exe" %base %mine /title1=%bname /title2=%yname /leftreadonly
"C:\Program Files\Beyond Compare 3\BComp.exe" %mine %theirs %base %merged /title1=%yname /title2=%tname /title3=%bname /title4=%mname
"C:\Program Files\Beyond Compare 3\BComp.exe" %mine %theirs /mergeoutput=%merged
SourceGear Vault / Fortress
"%LEFT_PATH%" "%RIGHT_PATH%" /ro /title1="%LEFT_LABEL%" /title2="%RIGHT_LABEL%"
"%WORKING_PATH%" "%OTHER_PATH%" "%BASELINE_PATH%" "%DEST_PATH%" /title1="%WORKING_LABEL%" /title2="%OTHER_LABEL%" /title4="%DEST_LABEL%"
"%WORKING_PATH%" "%OTHER_PATH%" /title1="%WORKING_LABEL%" /title2="%OTHER_LABEL%" /savetarget="%DEST_PATH%"
VersionMaster
Visual SourceSafe 2005
"C:\Program Files\Beyond Compare 3\bcomp.exe" %1 %2
"C:\Program Files\Beyond Compare 3\bcomp.exe" %1 %2 /savetarget=%4
WinCVS