FileMerge
The diff command is available by default on the Mac, and it works the same in Linux and other unix operating systems as well, just in care you were wondering, and for Windows users it’s quite similar to how the ‘fc’ file compare tool works.
Mac tool chests for sale. Being part of its developer toolset, Apple's own merge tool comes at no additional costs. It might not be the most elegant tool, but it's definitely a solid one that does the job of comparing & merging text.
Beyond Compare
Originally a product for Microsoft Windows, the Beyond Compare team has contributed a fine diff tool to the Mac platform. Like Araxis Merge and DeltaWalker, it goes beyond (pun intended) comparing simple text and also allows diffing Word and PDF contents. In its 'Pro Version', it also supports merging.
Araxis Merge
One of the few diff tools that works with more than just text and image files, Araxis Merge lets you also compare office documents (like MS Word, Excel, Powerpoint, or ODF). For people working on both Windows and Mac, it's great to know that a single license is valid for both platforms.
NEW: Image Diffing in Tower! Mac tool for hard drive spindle problem. Our popular Git client Tower now supports Image Diffing for a variety of formats (including PNG, JPG, GIF, BMP, TIFF, JPEG2000, and HEIC). In both the Working Copy and various History / Changeset views, you can now see the actual images - and how they were changed! Try it yourself - for free!
DeltaWalker
Just like Araxis, the DeltaWalker app also lets you compare office files. However, it goes one step further by letting you compare file archives like ZIP, JAR, and TAR files. Also, if you're regularly performing comparisons on a folder basis, DeltaWalker shines with a great performance in this area.
Kaleidoscope
Originally developed by 'Sofa', Kaleidoscope was later acquired by 'BlackPixel' - who did a great job in making it one of the best diff & merge tools for the Mac. Its beautiful user interface and great image diffing capabilities are what set it apart.
Free Alternatives
In case you're looking for a free alternative to the standard FileMerge app, you should also have a look at P4Merge and DiffMerge.
Both can't compare in terms of features and user interface with their commercial competitors - but make for a valid alternative on Mac, Windows, and Linux.
Integrations
Snipping tool for mac 2018. Another aspect to watch out for is integrations: before choosing your favorite tool, you should make sure that it plays nicely with the rest of your tool chain. I can already confirm that all of the mentioned tools work seamlessly at least with Tower, our own Git client.
If you don't need the power of a dedicated Diff tool application, the integrated diff views in Tower might be absolutely sufficient for you:
In case you don't know Tower: it's the Git desktop client for Mac and Windows that helps thousands of developers and designers to easily & productively work with the Git version control system. Try it 30 days for free! Low level format tool for mac.
Conclusion
Diff & merge apps are amongst the most underestimated tools. But a good one can be really helpful in a lot of situations. Try one of the above and see for yourself!
Get the Git Cheat Sheet
Download one of the web's most popular resources on Git! It's free!
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.
Name | Creator | FOSS | Free | First public release date | Year of latest stable version | Windows | Macintosh | Linux | Other platforms | Max Supported File Size |
---|---|---|---|---|---|---|---|---|---|---|
Beyond Compare | Scooter Software[1] | No; Proprietary | No | 1996 | 2019-05-28 (v4.2.10) | Yes | Yes | Yes | > 2GB (64 bits) | |
Compare++ | Coode Software[2] | No; Proprietary | No | 2010 | 2014-11-12 (2.21.2.0) | Yes[3] | No | No | ||
diff, diff3 | AT&T | Yes; BSD 3-clause, BSD 4-clause, CDDL, GPL, Proprietary | Yes | 1974 | Yes | Yes (Mac OS X) | Yes | ported to most platforms as part of SCCS | > 2GB but less than 64 bits | |
Eclipse (compare) | Yes; Eclipse Public License | Yes | 2004-07-21 | 2016-09-28 (4.6.1 (Neon.1)) | Yes | Yes | Yes | Anything with Java | ||
Ediff | Michael Kifer[4] | Yes; GPL | Yes | 1994 | 2.81.4 | Yes[5] | Yes (Mac OS X) | Yes | Anything with Emacs and diff | |
ExamDiff Pro | PrestoSoft[6] | No; Proprietary | No | 1998 | 2017-09-23 (v 9.0.1.6) | Yes (Win98 and up) | No | No | ||
Far Manager (compare) | Eugene Roshal (original); FAR Group | Yes; Revised BSD license | Yes | 1996 | 2017-08-07 (v3.0 build 5000) | Yes | No | No | ||
fc | Microsoft[7] | No; Proprietary | Yes; Part of OS | 1987 | Yes (DOS) | No | No | |||
FileMerge (aka opendiff) | Apple Inc. | No; Proprietary | Yes; (part of Apple Developer Tools) | 1993 (part of NEXTSTEP 3.2[8]) | 2014 (v2.8) | No | Yes (Mac OS X) | No | ||
Guiffy SureMerge | Guiffy Software[9] | No; Proprietary | No | 2000 | 2019-05-07 (v11.10) | Yes | Yes | Yes | Anything with Java | > 2GB |
IntelliJ IDEA (compare) | JetBrains[10] | No; Proprietary | No | 2001 | 2019-08-20 (2019.2.1) | Yes | Yes | Yes | ||
jEdit JDiff plugin | Various[11] | Yes; GPL | Yes | 1998 | 2012-10-04 (3.3.0) | Yes | Yes | Yes | Anything with Java | |
Kompare | Otto Bruggeman[12] | Yes; GPLv2+ | Yes | Yes [13] | Yes (Mac OS X) | Yes | ||||
Lazarus Diff | Lazarus (software) | Yes; GPL | Yes | 2000 | 2016-11-13 (1.6.2) | Yes | Yes | Yes | FreeBSD | |
Meld | Stephen Kennedy[14] | Yes; GPLv2+ | Yes | 2002 | 2018-06-19 (v3.18.2) | Yes[15] | Yes | Yes | BSD, Solaris | |
Notepad++ (compare) | Various | Yes; GPLv3 | Yes | 2009 | 2015-01-06 (1.5.6.6) | Yes[16] | No | No | ||
Perforce P4Merge | Perforce | No; Proprietary | Yes | 2019 (2019.1/1815056) | Yes | Yes | Yes | Sun Solaris | ||
Pretty Diff | Austin Cheney[17] | Yes; MIT-compatible | Yes | 2009 | 2016-11-11 (2.1.14) | Yes (Web) | Yes (Web) | Yes (Web) | Node.js | |
Tkdiff | Tkdiff[18] | Yes; GPLv2+ | Yes | 2003 (or before) | 2011-11-27 (v4.2) | Yes (Tcl) | Yes (Tcl) | Yes (Tcl) | Anything with Tcl | |
Total Commander (compare) | Christian Ghisler[19] | No; Proprietary | No | 2016-11-23 (v9.00) | Yes | No | No | |||
twdiff (TextWrangler Diff Helper) | Bare Bones Software, Inc.[20] | No; Proprietary | Yes; with TextWrangler | 2012 (1.0 (v22)) | No | Yes | No | No | ||
vimdiff | Bram Moolenaar et al. | Yes; GPL-compatible [21] | Yes | 2001 | 2016-10-03 (v8.0.0022) | Yes | Yes | Yes | Anything with vim | |
WinDiff | Microsoft[22] | No; Proprietary | Yes; Part of Platform SDK | 1992 | 2002-08-16 14:36:14 (v5.00.2195.6601) | Yes | No | No | No | |
WinMerge | Dean Grimm[23] | Yes; GPL | Yes | 1998 | 2018-11-22 (v2.18.0) | Yes (Win95 and up) | Yes (in wine[24]) | Yes (in wine[24]) | 2 GB | |
UCC | USC CSSE[25] | No; USC-CSSE Limited Public License | Yes | 2009 | 2015-12-30 (2015.12) | Yes | Yes | Yes {2.6.9} | Sun Solaris | |
Name | Creator | FOSS | Free | First public release date | Year of latest stable version | Windows | Macintosh | Linux | Other platforms | Max Supported File Size |
Compare features[edit]
Name | Show in-line changes | Directory comparison | Binary comparison | Moved lines | 3-way comparison | Merge | Structured comparison[26] | Manual compare alignment | Image Compare |
---|---|---|---|---|---|---|---|---|---|
Beyond Compare | Yes | Yes | Yes | No | Yes (Files and Folders) | Yes (Pro only) | Yes | Yes | |
Compare++ | Yes | Yes | Yes | Yes | Yes (C/C++,C#,Java,Javascript,CSS3) | ||||
diff | No | Yes | partly | No | No | No | |||
diff3 | No | No | Yes (non-optional) | ||||||
Eclipse (compare) | Yes | No (only ancestor) | Yes | No | |||||
Ediff | Yes | Yes | Yes | Yes | Yes | ||||
ExamDiff Pro | Yes | Yes | Yes | Yes[27] | Yes (ExamDiff Pro Master only)[28] | Yes | manual synchronization | ||
Far Manager (compare) | Yes (Via plugin) [29] | Yes | Yes | Yes (Via plugin) [29] | No | No | |||
fc | No | No | Yes | No | No | ||||
FileMerge (aka opendiff) | Yes | Yes | Yes | Yes (optional ancestor) | Yes | ||||
Guiffy SureMerge | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
IntelliJ IDEA (compare) | Yes | Yes | Yes | Yes | Yes | Yes | |||
jEdit JDiff plugin | Yes | No | Yes | ||||||
Kompare | Yes | No | No | Yes | |||||
Lazarus Diff | |||||||||
Meld | Yes | Yes | No | Yes | Yes | Yes | line alignment, unlink scroll | ||
Notepad++ (compare) | Yes | No | No | Yes | No | No | No | ||
Perforce P4Merge | Yes | No | No | Yes | Yes | Yes | |||
Pretty Diff | Yes | Yes | No | No | No | No | Yes | No | |
Tkdiff | Yes | No | No | No | No | No | |||
Total Commander (compare) | Yes | Yes | Yes | No | No | Yes | No | resync comparison | No |
vimdiff | Yes | Yes (via DirDiff plugin) | Yes | Yes | |||||
WinDiff | Yes | Yes | Yes | Yes | No | No | |||
WinMerge | Yes | Yes | No | Yes | Yes | Yes | No | Yes | |
UCC | Yes | Yes | Yes | Yes | No | Yes | |||
Name | Show in-line changes | Directory comparison | Binary comparison | Moved lines | 3-way comparison | Merge | Structured comparison[26] | Manual compare alignment | Image compare |
API / editor features[edit]
Name | GUI | CLI | Scripting | Horizontal / Vertical | Syntax Highlighting | Reports |
---|---|---|---|---|---|---|
Beyond Compare | Yes | Yes | Yes | Both | Yes | XML, HTML, CSV, Text, Unix Patch |
Compare++ | Yes | Yes | Both | Yes | HTML, Text(combined or side-by-side) | |
diff | No | Yes | Horizontal | Yes pipe to diff-highlight[30] | ||
diff3 | No | Yes | Horizontal | |||
Eclipse (compare) | Yes | Vertical | Yes | |||
Ediff | Yes | Yes | elisp | Both | Yes | |
ExamDiff Pro | Yes | Yes | optional | Yes | UNIX, HTML, Diff | |
Far Manager (compare) | Yes | Yes | Yes | Yes | No | |
fc | No | Yes | Horizontal | |||
FileMerge (aka opendiff) | Yes | Yes | Vertical | Yes | No | |
Guiffy SureMerge | Yes | Yes | Java API | Both | Yes | HTML, Text, Unix Patch |
IntelliJ IDEA (compare) | Yes | Yes | Vertical | Yes | ||
jEdit JDiff plugin | Yes | Both | Yes | |||
Kompare | Yes | Vertical | No | |||
Lazarus Diff | Yes | Yes | ||||
Meld | Yes | No | Horizontal | Yes | No | |
Notepad++ (compare) | Yes | Yes | Both | Yes | No | |
Perforce P4Merge | Yes | Yes | Vertical | No | No | |
Pretty Diff | Yes | Yes | JavaScript | Both | Yes | XHTML |
Tkdiff | Yes | |||||
Total Commander (compare) | Yes | Both | No | No | ||
vimdiff | Yes | Yes | vim script | Both | Yes | HTML |
WinDiff | Yes | Yes | Horizontal | No | Text | |
WinMerge | Yes | Yes | Vertical | Yes | CSV, Tab-delimited, HTML, XML | |
UCC | Yes | Yes | Vertical | Yes | Text, CSV | |
Name | GUI | CLI | Scripting | Horizontal / Vertical | Syntax Highlighting | Reports |
Other features[edit]
Some other features which did not fit in previous table
Name | ZIP support | FTP support | SFTP support | Version Control browsing | Patch creation | Patch application | Patch preview | Unicode support | XML-aware |
---|---|---|---|---|---|---|---|---|---|
Beyond Compare | Yes | Yes | Yes | SVN | Yes | Yes | Yes | Yes | |
Compare++ | SVN, CVS, Git, Microsoft TFS, Perforce, VSS using command line | Yes | |||||||
diff | No | No | No | Yes | Yes with patch | Yes with patch | No | No | |
diff3 | No | No | No | ||||||
Eclipse (compare) | Yes CVS, Subversion, Git, Mercurial, Baazar | Yes | |||||||
Ediff | Yes | Yes | RCS, CVS, SVN, Mercurial, git (anything supported by Emacs' VC-mode)[31] | Yes | Yes | Yes | |||
ExamDiff Pro | Yes[32] | Yes[33] | normal diff only | Yes | |||||
Far Manager (compare) | No | No | No | No | No | No | Yes | No | |
fc | No | No | No | ||||||
FileMerge (aka opendiff) | No | supported by OS | No | No | No | ||||
Guiffy SureMerge | Yes | Yes | Yes | Yes | Yes[34] | ||||
IntelliJ IDEA (compare) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
jEdit JDiff plugin | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Kompare | Yes | ||||||||
Lazarus Diff | |||||||||
Meld | CVS, Subversion, Git, Mercurial, Baazar | Yes | Yes | ||||||
Notepad++ (compare) | No | Yes[35] | Git, Subversion (compare against base) | No | No | No | Yes | No | |
Perforce P4Merge | No | Yes | |||||||
Pretty Diff | No | No | No | No | No | No | No | Yes | Yes |
Tkdiff | No | No | CVS, RCS, Subversion | No | No | No | No | No | |
Total Commander (compare) | Yes | Yes | Yes | No | No | No | No | Yes | No |
vimdiff | Yes | Yes | Yes | Yes | |||||
WinDiff | No | No | No | No | |||||
WinMerge | Yes | No | Mercurial,[36] Subversion,[37] Visual Source Safe, Rational ClearCase[38] | Yes | Yes | ||||
UCC | Yes | No | Yes | ||||||
Name | ZIP support | FTP support | SFTP support | Version Control browsing | Patch creation | Patch application | Patch preview | Unicode support | XML-aware |
Itool For Mac
Mac Os Merge Tool
Aspects[edit]
What aspects can be / are compared?
Name | Filename casing | CRC | Filedate | Daylight saving | Character casing |
---|---|---|---|---|---|
Beyond Compare | Yes | Yes | Yes | Yes | Yes |
Compare++ | Yes | Yes | Yes | Yes | |
diff | Yes | No | No | No | Optional |
diff3 | |||||
Eclipse (compare) | |||||
Ediff | |||||
ExamDiff Pro | No | Yes | Yes | Yes | Yes |
Far Manager (compare) | Yes | No | Yes | No | Yes |
fc | No | Optional | |||
FileMerge (aka opendiff) | No | No | No | Optional | |
Guiffy SureMerge | filesystem dependent | Yes | Yes | ||
IntelliJ IDEA (compare) | |||||
jEdit JDiff plugin | |||||
Kompare | Yes | ||||
Lazarus Diff | |||||
Meld | |||||
Notepad++ (compare) | No | No | No | Yes | |
Perforce P4Merge | N/A | No | No | No | Yes |
Pretty Diff | N/A | No | No | No | Optional |
Tkdiff | |||||
Total Commander (compare) | Optional | Yes (in synchronize only) | Optional | ||
vimdiff | No | No | No | No | Yes |
WinDiff | No | No | when different | Yes | Optional |
WinMerge | No | No | Optional | Optional | |
UCC | No | No | Yes | No | |
Name | Filename casing | CRC | Filedate | Daylight saving | Character casing |
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]
- ^Scooter Software
- ^Coode Software
- ^Compare++ Operating system information
- ^Michael Kifer
- ^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.
- ^PrestoSoft
- ^Microsoft
- ^NeXT Product Marketing (Fall 1993). 'What's New in Release 3.2?'. NEXTSTEP In Focus. NeXT Computer, Inc. 3 (4). Retrieved 18 July 2014.
- ^Guiffy Software
- ^JetBrains
- ^jedit.org
- ^'Otto Bruggeman'. Archived from the original on 2012-04-15. Retrieved 2006-01-12.Cite uses deprecated parameter
|dead-url=
(help) - ^Installing Kompare in Windows
- ^Stephen Kennedy
- ^Meld/Windows
- ^Notepad++ compare plugin
- ^Pretty Diff
- ^tkdiff
- ^Christian Ghisler
- ^Bare Bones Software, Inc.
- ^vim license
- ^Microsoft
- ^Dean Grimm
- ^ abWinMerge in Wine
- ^USC CSSE
- ^ abCompare logical sections (class, methods)
- ^Examdiff
- ^Examdiff
- ^ abVisual Rename
- ^https://github.com/git/git/tree/master/contrib/diff-highlight
- ^gnu.org Support-for-Version-Control
- ^through a plug-in
- ^through a plug-in
- ^UTF8, UTF16, MBCS, SJIS, over 150 file encoding and character set formats
- ^Notepad++ FTP plugin
- ^'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) - ^'Using WinMerge with other tools – WinMerge 2.12 Manual'. Winmerge.org. Retrieved 2010-07-06.
- ^'About'. WinMerge. Retrieved 2010-07-06.
- ^Example: 'Beyond Compare' help describes a user setting 'timezone differences – ignores timestamp differences that are multiples of an exact hour.'