Diff Merge Tool For Mac

This article compares computer software tools that compare files, and in many cases directories or folders, whether it is their main purpose or as part of more general file management.

General[edit]

Basic general information about file comparison software.

NameCreatorFOSSFreeFirst public release dateYear of latest stable versionWindowsMacintoshLinuxOther platformsMax Supported File Size
Beyond CompareScooter Software[1]No; ProprietaryNo19962019-05-28 (v4.2.10)YesYesYes> 2GB (64 bits)
Compare++Coode Software[2]No; ProprietaryNo20102014-11-12 (2.21.2.0)Yes[3]NoNo
diff, diff3AT&TYes; BSD 3-clause, BSD 4-clause, CDDL, GPL, ProprietaryYes1974YesYes (Mac OS X)Yesported to most platforms as part of SCCS> 2GB but less than 64 bits
Eclipse (compare)Yes; Eclipse Public LicenseYes2004-07-212016-09-28 (4.6.1 (Neon.1))YesYesYesAnything with Java
EdiffMichael Kifer[4]Yes; GPLYes19942.81.4Yes[5]Yes (Mac OS X)YesAnything with Emacs and diff
ExamDiff ProPrestoSoft[6]No; ProprietaryNo19982017-09-23 (v 9.0.1.6)Yes (Win98 and up)NoNo
Far Manager (compare)Eugene Roshal (original); FAR GroupYes; Revised BSD licenseYes19962017-08-07 (v3.0 build 5000)YesNoNo
fcMicrosoft[7]No; ProprietaryYes; Part of OS1987Yes (DOS)NoNo
FileMerge (aka opendiff)Apple Inc.No; ProprietaryYes; (part of Apple Developer Tools)1993 (part of NEXTSTEP 3.2[8])2014 (v2.8)NoYes (Mac OS X)No
Guiffy SureMergeGuiffy Software[9]No; ProprietaryNo20002019-05-07 (v11.10)YesYesYesAnything with Java> 2GB
IntelliJ IDEA (compare)JetBrains[10]No; ProprietaryNo20012019-08-20 (2019.2.1)YesYesYes
jEdit JDiff pluginVarious[11]Yes; GPLYes19982012-10-04 (3.3.0)YesYesYesAnything with Java
KompareOtto Bruggeman[12]Yes; GPLv2+YesYes [13]Yes (Mac OS X)Yes
Lazarus DiffLazarus (software)Yes; GPLYes20002016-11-13 (1.6.2)YesYesYesFreeBSD
MeldStephen Kennedy[14]Yes; GPLv2+Yes20022018-06-19 (v3.18.2)Yes[15]YesYesBSD, Solaris
Notepad++ (compare)VariousYes; GPLv3Yes20092015-01-06 (1.5.6.6)Yes[16]NoNo
Perforce P4MergePerforceNo; ProprietaryYes2019 (2019.1/1815056)YesYesYesSun Solaris
Pretty DiffAustin Cheney[17]Yes; MIT-compatibleYes20092016-11-11 (2.1.14)Yes (Web)Yes (Web)Yes (Web)Node.js
TkdiffTkdiff[18]Yes; GPLv2+Yes2003 (or before)2011-11-27 (v4.2)Yes (Tcl)Yes (Tcl)Yes (Tcl)Anything with Tcl
Total Commander (compare)Christian Ghisler[19]No; ProprietaryNo2016-11-23 (v9.00)YesNoNo
twdiff (TextWrangler Diff Helper)Bare Bones Software, Inc.[20]No; ProprietaryYes; with TextWrangler2012 (1.0 (v22))NoYesNoNo
vimdiffBram Moolenaar et al.Yes; GPL-compatible [21]Yes20012016-10-03 (v8.0.0022)YesYesYesAnything with vim
WinDiffMicrosoft[22]No; ProprietaryYes; Part of Platform SDK19922002-08-16 14:36:14 (v5.00.2195.6601)YesNoNoNo
WinMergeDean Grimm[23]Yes; GPLYes19982018-11-22 (v2.18.0)Yes (Win95 and up)Yes (in wine[24])Yes (in wine[24])2 GB
UCCUSC CSSE[25]No; USC-CSSE Limited Public LicenseYes20092015-12-30 (2015.12)YesYesYes {2.6.9}Sun Solaris
NameCreatorFOSSFreeFirst public release dateYear of latest stable versionWindowsMacintoshLinuxOther platformsMax Supported File Size

Installing Development environment on macOS. Contribute to sb2nov/mac-setup development by creating an account on GitHub.

  • Is an application to visually compare and merge files. Product Features. Graphically shows the changes between two files. Includes intra-line highlighting and full support for editing.
  • Beyond Compare 3 Pro supports three-way merging, and it is a pretty impressive merge tool.It's commercial (but worth it, IMHO) and is available on Windows, Linux, and Mac OS X. As pointed out in a comment, it's also inexpensive.

Compare features[edit]

NameShow in-line changesDirectory comparisonBinary comparisonMoved lines3-way comparisonMergeStructured comparison[26]Manual compare alignmentImage Compare
Beyond CompareYesYesYesNoYes (Files and Folders)Yes (Pro only)YesYes
Compare++YesYesYesYesYes (C/C++,C#,Java,Javascript,CSS3)
diffNoYespartlyNoNoNo
diff3NoNoYes (non-optional)
Eclipse (compare)YesNo (only ancestor)YesNo
EdiffYesYesYesYesYes
ExamDiff ProYesYesYesYes[27]Yes (ExamDiff Pro Master only)[28]Yesmanual synchronization
Far Manager (compare)Yes (Via plugin) [29]YesYesYes (Via plugin) [29]NoNo
fcNoNoYesNoNo
FileMerge (aka opendiff)YesYesYesYes (optional ancestor)Yes
Guiffy SureMergeYesYesYesYesYesYesYes
IntelliJ IDEA (compare)YesYesYesYesYesYes
jEdit JDiff pluginYesNoYes
KompareYesNoNoYes
Lazarus Diff
MeldYesYesNoYesYesYesline alignment, unlink scroll
Notepad++ (compare)YesNoNoYesNoNoNo
Perforce P4MergeYesNoNoYesYesYes
Pretty DiffYesYesNoNoNoNoYesNo
TkdiffYesNoNoNoNoNo
Total Commander (compare)YesYesYesNoNoYesNoresync comparisonNo
vimdiffYesYes (via DirDiff plugin)YesYes
WinDiffYesYesYesYesNoNo
WinMergeYesYesNoYesYesYesNoYes
UCCYesYesYesYesNoYes
NameShow in-line changesDirectory comparisonBinary comparisonMoved lines3-way comparisonMergeStructured comparison[26]Manual compare alignmentImage compare

API / editor features[edit]

NameGUICLIScriptingHorizontal / VerticalSyntax HighlightingReports
Beyond CompareYesYesYesBothYesXML, HTML, CSV, Text, Unix Patch
Compare++YesYesBothYesHTML, Text(combined or side-by-side)
diffNoYesHorizontalYes pipe to diff-highlight[30]
diff3NoYesHorizontal
Eclipse (compare)YesVerticalYes
EdiffYesYeselispBothYes
ExamDiff ProYesYesoptionalYesUNIX, HTML, Diff
Far Manager (compare)YesYesYesYesNo
fcNoYesHorizontal
FileMerge (aka opendiff)YesYesVerticalYesNo
Guiffy SureMergeYesYesJava APIBothYesHTML, Text, Unix Patch
IntelliJ IDEA (compare)YesYesVerticalYes
jEdit JDiff pluginYesBothYes
KompareYesVerticalNo
Lazarus DiffYesYes
MeldYesNoHorizontalYesNo
Notepad++ (compare)YesYesBothYesNo
Perforce P4MergeYesYesVerticalNoNo
Pretty DiffYesYesJavaScriptBothYesXHTML
TkdiffYes
Total Commander (compare)YesBothNoNo
vimdiffYesYesvim scriptBothYesHTML
WinDiffYesYesHorizontalNoText
WinMergeYesYesVerticalYesCSV, Tab-delimited, HTML, XML
UCCYesYesVerticalYesText, CSV
NameGUICLIScriptingHorizontal / VerticalSyntax HighlightingReports

Other features[edit]

Some other features which did not fit in previous table

NameZIP supportFTP supportSFTP supportVersion Control browsingPatch creationPatch applicationPatch previewUnicode supportXML-aware
Beyond CompareYesYesYesSVNYesYesYesYes
Compare++SVN, CVS, Git, Microsoft TFS, Perforce, VSS using command lineYes
diffNoNoNoYesYes with patchYes with patchNoNo
diff3NoNoNo
Eclipse (compare)Yes CVS, Subversion, Git, Mercurial, BaazarYes
EdiffYesYesRCS, CVS, SVN, Mercurial, git (anything supported by Emacs' VC-mode)[31]YesYesYes
ExamDiff ProYes[32]Yes[33]normal diff onlyYes
Far Manager (compare)NoNoNoNoNoNoYesNo
fcNoNoNo
FileMerge (aka opendiff)Nosupported by OSNoNoNo
Guiffy SureMergeYesYesYesYesYes[34]
IntelliJ IDEA (compare)YesYesYesYesYesYesYesYes
jEdit JDiff pluginYesYesYesYesYesYesYes
KompareYes
Lazarus Diff
MeldCVS, Subversion, Git, Mercurial, BaazarYesYes
Notepad++ (compare)NoYes[35]Git, Subversion (compare against base)NoNoNoYesNo
Perforce P4MergeNoYes
Pretty DiffNoNoNoNoNoNoNoYesYes
TkdiffNoNoCVS, RCS, SubversionNoNoNoNoNo
Total Commander (compare)YesYesYesNoNoNoNoYesNo
vimdiffYesYesYesYes
WinDiffNoNoNoNo
WinMergeYesNoMercurial,[36] Subversion,[37] Visual Source Safe, Rational ClearCase[38]YesYes
UCCYesNoYes
NameZIP supportFTP supportSFTP supportVersion Control browsingPatch creationPatch applicationPatch previewUnicode supportXML-aware

Aspects[edit]

What aspects can be / are compared?

NameFilename casingCRCFiledateDaylight savingCharacter casing
Beyond CompareYesYesYesYesYes
Compare++YesYesYesYes
diffYesNoNoNoOptional
diff3
Eclipse (compare)
Ediff
ExamDiff ProNoYesYesYesYes
Far Manager (compare)YesNoYesNoYes
fcNoOptional
FileMerge (aka opendiff)NoNoNoOptional
Guiffy SureMergefilesystem dependentYesYes
IntelliJ IDEA (compare)
jEdit JDiff plugin
KompareYes
Lazarus Diff
Meld
Notepad++ (compare)NoNoNoYes
Perforce P4MergeN/ANoNoNoYes
Pretty DiffN/ANoNoNoOptional
Tkdiff
Total Commander (compare)OptionalYes (in synchronize only)Optional
vimdiffNoNoNoNoYes
WinDiffNoNowhen differentYesOptional
WinMergeNoNoOptionalOptional
UCCNoNoYesNo
NameFilename casingCRCFiledateDaylight savingCharacter casing

Best Diff Merge Tool For Mac

Timezone effects[edit]

When files are transferred across time zones and between Microsoft FAT and NTFSfile systems, the timestamp displayed by the same file may change, so that identical files with different storage histories are deemed different by a comparer that requires the timestamps to match. The difference is an exact number of quarters of an hour up to 95 (same minutes modulo 15 and seconds) if the file was transported across zones; there is also a one-hour difference within a single zone caused by the transition between standard time and daylight saving time (DST). Some, but not all, file comparison and synchronisation software can be configured to ignore the DST and time-zone differences.[39] Software known to have daylight-saving compensation is marked in the Aspects table.

See also[edit]

References[edit]

  1. ^Scooter Software
  2. ^Coode Software
  3. ^Compare++ Operating system information
  4. ^Michael Kifer
  5. ^Ediff requires a diff utility to function. As of December 2017, diff is not bundled with Emacs or Windows, so use of Ediff in a Windows environment requires installation of both Emacs and a diff implementation like GNU diff.
  6. ^PrestoSoft
  7. ^Microsoft
  8. ^NeXT Product Marketing (Fall 1993). 'What's New in Release 3.2?'. NEXTSTEP In Focus. NeXT Computer, Inc. 3 (4). Retrieved 18 July 2014.
  9. ^Guiffy Software
  10. ^JetBrains
  11. ^jedit.org
  12. ^'Otto Bruggeman'. Archived from the original on 2012-04-15. Retrieved 2006-01-12.Cite uses deprecated parameter |dead-url= (help)
  13. ^Installing Kompare in Windows
  14. ^Stephen Kennedy
  15. ^Meld/Windows
  16. ^Notepad++ compare plugin
  17. ^Pretty Diff
  18. ^tkdiff
  19. ^Christian Ghisler
  20. ^Bare Bones Software, Inc.
  21. ^vim license
  22. ^Microsoft
  23. ^Dean Grimm
  24. ^ abWinMerge in Wine
  25. ^USC CSSE
  26. ^ abCompare logical sections (class, methods)
  27. ^Examdiff
  28. ^Examdiff
  29. ^ abVisual Rename
  30. ^https://github.com/git/git/tree/master/contrib/diff-highlight
  31. ^gnu.org Support-for-Version-Control
  32. ^through a plug-in
  33. ^through a plug-in
  34. ^UTF8, UTF16, MBCS, SJIS, over 150 file encoding and character set formats
  35. ^Notepad++ FTP plugin
  36. ^'tortoisehg / stable / wiki / FAQ —'. Bitbucket.org. Archived from the original on 2010-07-15. Retrieved 2010-07-06.Cite uses deprecated parameter |dead-url= (help)
  37. ^'Using WinMerge with other tools – WinMerge 2.12 Manual'. Winmerge.org. Retrieved 2010-07-06.
  38. ^'About'. WinMerge. Retrieved 2010-07-06.
  39. ^Example: 'Beyond Compare' help describes a user setting 'timezone differences – ignores timestamp differences that are multiples of an exact hour.'
Retrieved from 'https://en.wikipedia.org/w/index.php?title=Comparison_of_file_comparison_tools&oldid=913079863'

Our favorite (and free) visual diff and merge tool for OS X (as well as Linux and Windows) is DiffMerge. It makes resolving nasty Git branch conflicts a snap (relatively speaking). Here’s how to install it and configure it with Git on OS X:

Download the DiffMerge OS X installer. Be sure to download the Installer version. There’s also a DMG version but then you’ll have to manually install the diffmerge command line script.
Once you’ve downloaded it go into terminal and make sure you can run it from the command line by typing diffmerge and hitting return.

To configure Git to use DiffMerge run these commands from the command line:

Diff Merge Tool For Mac

Diff Merge Tool For Mac

Free Diff Merge Tool

git config--global diff.tool diffmerge
git config--global difftool.diffmerge.cmd 'diffmerge '$LOCAL' '$REMOTE'
git config--global merge.tool diffmerge
git config--global mergetool.diffmerge.cmd 'diffmerge --merge --result='$MERGED' '$LOCAL' '$(if test -f '$BASE'; then echo '$BASE'; else echo '$LOCAL'; fi)' '$REMOTE'
git config--global mergetool.diffmerge.trustExitCode true

Now, whenever you want it to launch diffs just use difftool where you’d normally use diff:

# diff the local file.m against the checked-in version
git difftool file.m
# diff the local file.m against the version in some-feature-branch
git difftool some-feature-branch file.m
# diff the file.m from the Build-54 tag to the Build-55 tag
git difftool Build-54..Build-55 file.m

To resolve merge conflicts, just run git mergetool:

Diff Merge Tool For Mac

Related