Beyond Compare: Difference between revisions
Line 39: | Line 39: | ||
# To launch a diff using Beyond Compare | # To launch a diff using Beyond Compare | ||
$ git difftool file.ext | $ git difftool file.ext | ||
</pre> | |||
=== Beyond Compare Merge Integration === | |||
If you have the BC 4 Pro version you can create a git mergetool version for BC. | |||
The section in your global .gitconfig (full path: ~/.gitconfig). Please note I am using '''BC3''' and have '''BC4'''. | |||
<pre> | |||
... | |||
[merge] | |||
tool = bc3 | |||
[mergetool "bc3"] | |||
cmd = "/usr/local/bin/bcomp" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\" | |||
trustExitCode = true | |||
... | |||
</pre> | </pre> | ||
Revision as of 11:58, 17 September 2021
Beyond Compare
is a data comparison utility.
Aside from comparing files, the program is capable of doing side-by-side comparison of directories, FTP and SFTP directories, Dropbox directories, Amazon S3 directories, and archives.
It is available for Windows, Mac OS, and Linux operating systems.
A strength of Beyond Compare is that it can be configured as difftool and mergetool of version control systems, such as git. [1].
Rules
Minor diffs
Sometimes you don't want to see minor differences [2].
- Load a pair of DFM files showing the difference.
- Click the Session Settings button (aka Rules w/ umpire icon) or use the Session ⇨ Session Settings menu item.
- Switch to the Importance tab then click the Edit Grammar... button to open a second dialog.
- Click the New... button below the top listbox to open a third dialog.
- Change the Element Name option to something like Explicit*, change the Text Matching to Explicit(Left|Top|Width|Height) = \d+ and check the Match character case and Regular expression checkboxes, then click Ok, then click Ok again in the second dialog.
- Explicit* should now appear in the original dialog's Grammar Elements list.
- Uncheck it, then change the combobox at the bottom of the dialog from Use for this view only to Update session defaults.
Git Integration

First of all make Beyond Compare reachable from the command line using the menu-option Beyond Compare → Install Command Line Tools which creates a symbolic link:
/usr/local/bin/bcomp
SourceTree Integration
Open SourceTree and go to menu option SourceTree → Preferences and click on the Diff icon on top of the window.
Now fill the creates symbolic link into the External Diff / Merge as show on the right. Please note you have to change all input fields.
Git CLI
The Git Command Line Interface (Terminal usage) has the following commands in case of an collision:
# To See what is configured $ git config --global --list # Diff - Sets the requested Diff Tool $ git config --global diff.tool bc3 # To launch a diff using Beyond Compare $ git difftool file.ext
Beyond Compare Merge Integration
If you have the BC 4 Pro version you can create a git mergetool version for BC. The section in your global .gitconfig (full path: ~/.gitconfig). Please note I am using BC3 and have BC4.
... [merge] tool = bc3 [mergetool "bc3"] cmd = "/usr/local/bin/bcomp" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\" trustExitCode = true ...
Sublime Merge Integration
The CLI for Sublime Merge is called smerge. Make a symbolic link to /usr/local/bin/smerge.
# To See what is configured $ git config --global --list # Merge - Sets the requested Merge Tool $ git config --global mergetool.smerge.cmd 'smerge mergetool "$BASE" "$LOCAL" "$REMOTE" -o "$MERGED"' $ git config --global mergetool.smerge.trustExitCode true $ git config --global merge.tool smerge # To launch a merge using Sublime Merge $ git mergetool
Merging conflict
In this example is assumed:
- A git repo exists with instances on 2 Macs, an iMac and a MacBook.
- A file README.md exists in the repo.
- The status of both repo's is exactly the same on both computers
- There are no open branches
- In the git global config the Beyond Compare is registered as needed to be the mergetool.
Creation of the Conflict
Seq | On iMac | On Macbook |
---|---|---|
1. |
|
|
2. |
|
See also
- BC Technical Support, Using Beyond Compare with Version Control Systems (macOS).
Beyond Compare can be configured as the external difference utility in many popular VCS applications.
- Beyond Compare Gitbook, Git mergetool: merging three files.
Reference
- ↑ Wikipedia], Beyond Compare.
- ↑ Stack Overflow, How do i make BC ignore certain differences while comparing.