Comparison of file comparison tools
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
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 |
---|---|---|---|---|---|---|---|---|---|---|
Araxis Merge | Araxis Ltd | No; Proprietary | No; £79/169 GBP Standard/Pro | 2015 (regularly updated) | Yes | Yes | No | No | >2GB (64bit) | |
Beyond Compare | Scooter Software[1] | No; Proprietary | No; $US30 (std), 60 (pro) | 1996 | 2016 (v4.1.5) | Yes | Yes | Yes | > 2GB (64 bits) | |
Code Compare | Devart | No; Proprietary | Yes $49.95 Pro | April 13, 2010 | 2015 (regularly updated) | Yes | No | No | No | |
Compare++ | Coode Software[2] | No; Proprietary | No; $29.95, 30-day free trial[3] | 2010 | 2013 (v2.15) | Yes[4] | 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 | |
SG DiffMerge | SourceGear[5] | No; Proprietary | No; $US19[6] | 2003 | 2013-10 (4.2.0) | Yes | Yes | Yes | ||
DiffTool[7] | Ludwig Gruber | No; Proprietary | Yes; (on Google Play Store) | 2014 | 2015 (1.57) | No | No | No | Android | |
Diffuse[8] | Derrick Moser | Yes; GPL | Yes | 2006 | 2014-07 (0.4.8) | Yes | Yes | Yes | Anything with PyGtk+[9] | |
Eclipse (compare) [10] | Yes; Eclipse Public License | Yes | 2004-07-21 | 2014-09-26 | Yes | Yes | Yes | Anything with Java | ||
Ediff | Michael Kifer[11] | Yes; GPL | Yes | 1994 | 2.81.4 | Yes | Yes (Mac OS X) | Yes | Anything with Emacs | |
ExamDiff Pro | PrestoSoft[12] | No; Proprietary | No; $35, free file-only version[13] | 1998 | 2014 (v7.0.1.6) | Yes (Win98 and up) | No | No | ||
Far Manager (compare) | Eugene Roshal (original); FAR Group | Yes; Revised BSD license | Yes | 1996 | 2014 August (v 3.0 build 4040) | Yes | No | No | ||
fc | Microsoft[14] | 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[15]) | 2014 (v2.8) | No | Yes (Mac OS X) | No | ||
Guiffy SureMerge | Guiffy Software[16] | No; Proprietary | No; $37.50(Pro), 75(eXpert) | 2000 | 2016 April (v11.4) | Yes | Yes | Yes | Anything with Java | > 2GB |
IntelliJ IDEA (compare) | JetBrains[17] | No; Proprietary | No | 2007 (v6.0.5) | Yes | Yes | Yes | |||
jEdit JDiff plugin | Various[18] | Yes; GPL | Yes | 1998 | 2012 (3.3.0) | Yes | Yes | Yes | Anything with Java | |
KDiff3[19] | Joachim Eibl | Yes; GPL | Yes | 2002 | 2014-07 (0.9.98) | Yes | Yes | Yes | Qt4 or Qt5 | |
Kompare | Otto Bruggeman[20] | Yes; GPLv2+ | Yes | Yes [21] | Yes (Mac OS X) | Yes | ||||
Lazarus Diff | Lazarus (software) | Yes; GPL | Yes | 2000 | 2009 | Yes | Yes | Yes | FreeBSD | |
Meld | Stephen Kennedy[22] | Yes; GPLv2+ | Yes | 2002 | 2015-07-23 (v3.14.0) | Yes[23] | Yes | Yes | BSD, Solaris | |
Notepad++ (compare) | Various | Yes; GPLv3 | Yes | 2009 | 2015-01-06 (1.5.6.6) | Yes[24] | No | No | ||
Perforce P4Merge | Perforce | No; Proprietary | Yes | 2015 (2015.2) | Yes | Yes | Yes | Sun Solaris | ||
Pretty Diff | Austin Cheney[25] | Yes; MIT-compatible | Yes | 2009 | 2014-11-26 | Yes (Web) | Yes (Web) | Yes (Web) | Node.js, Windows Script Host | |
Tkdiff | Tkdiff[26] | 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[27] | No; Proprietary | No | 2015-09-17 (v8.52a) | Yes | No | No | |||
twdiff (TextWrangler Diff Helper) | Bare Bones Software, Inc.[28] | No; Proprietary | Yes; with TextWrangler | 2012 (1.0 (v22)) | No | Yes | No | No | ||
vimdiff | Bram Moolenaar et al. | Yes; GPL-compatible [29] | Yes | 2001 | 2006-05-07 (v7.0) | Yes | Yes | Yes | Anything with vim | |
WinDiff | Microsoft[30] | No; Proprietary | Yes; Part of Platform SDK | 1992 | 16.08.2002 14:36:14 (v5.00.2195.6601) | Yes | No | No | No | |
WinMerge | Dean Grimm[31] | Yes; GPL | Yes | 1998 | 2013-02-03 (v2.14.0) | Yes (Win95 and up) | Yes (in wine[32]) | Yes (in wine[33]) | 2 GB | |
UCC | USC CSSE[34] | No; USC-CSSE Limited Public License | Yes | 2009 | 2010-07 | Yes | Yes | Yes {2.6.9} | Sun Solaris | |
UltraCompare | IDM Computer Solutions, Inc.[35] | No; Proprietary | No; $24.95, 30-day free trial[36] | 2014 (v15) | Yes | Yes | Yes | |||
Name | Creator | FOSS | Free | First public release date | Year of latest stable version | Windows | Macintosh | Linux | Other platforms | Max Supported File Size |
Compare features
Name | Show in-line changes | Directory comparison | Binary comparison | Moved lines | 3-way comparison | Merge | Structured comparison[37] | Manual compare alignment | Image Compare |
---|---|---|---|---|---|---|---|---|---|
Araxis Merge | Yes | Yes | Yes | Yes | Yes | Yes | No | ||
Beyond Compare | Yes | Yes | Yes | No | Yes (Files and Folders) | Yes (Pro only) | Yes | Yes | |
Code Compare | Yes | Yes | Yes (Pro only) | Yes (Pro only) | Yes | Yes (Pro only) (C/C++,C#,Java,JavaScript,CSS3) | No | ||
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) | ||||||
SG DiffMerge | Yes | Yes | Yes | Yes | line alignment marker | ||||
DiffTool | Yes | Yes | Yes | No | No | Yes (folders) | |||
Diffuse | Yes | No | arbitrary file diffs, but not a 3-way diff | Yes | line alignment, isolate | ||||
Eclipse (compare) | Yes | No (only ancestor) | Yes | No | |||||
Ediff | Yes | Yes | Yes | Yes | Yes | ||||
ExamDiff Pro | Yes | Yes | Yes | Yes[38] | Yes (ExamDiff Pro Master, only) [39] | Yes | manual synchronization | ||
Far Manager (compare) | Yes (Via plugin) [40] | Yes | Yes | Yes (Via plugin) [40] | No | No | |||
fc | No | No | Yes | No | No | ||||
FileMerge | Yes | Yes | Yes | Yes (optional ancestor) | Yes | ||||
Guiffy SureMerge | Yes | Yes | Yes | Yes | Yes | ||||
IntelliJ IDEA (compare) | Yes | Yes | Yes | ||||||
jEdit JDiff plugin | Yes | No | Yes | ||||||
KDiff3 | Yes | Yes | Yes | Yes | alignment marker, split/join | ||||
Kompare | Yes | No | No | ||||||
Lazarus Diff | |||||||||
Meld | Yes | Yes | No | No | Yes | Yes | line alignment, unlink scroll | ||
Notepad++ (compare) | Yes | No | No | Yes | No | No | No | ||
Perforce P4Merge | Yes | No | No | 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 | Yes | resync comparasion | |||
vimdiff | Yes | Yes (via DirDiff plugin) | Yes | Yes | |||||
WinDiff | Yes | Yes | Yes | Yes | No | No | |||
WinMerge | Yes | Yes | No | Yes | No | Yes | No | ||
UCC | Yes | Yes | Yes | Yes | No | Yes | |||
Name | Show in-line changes | Directory comparison | Binary comparison | Moved lines | 3-way comparison | Merge | Structured comparison[37] | Manual compare alignment | Image compare |
API / editor features
Name | GUI | CLI | Scripting | Horizontal / Vertical | Syntax Highlighting | Reports |
---|---|---|---|---|---|---|
Araxis Merge | Yes | Yes | Yes | Both | Yes | Yes |
Beyond Compare | Yes | Yes | Yes | Both | Yes | XML, HTML, CSV, Text, Unix Patch |
Code Compare | Yes | Yes | No | Both | Yes | No |
Compare++ | Yes | Yes | Both | Yes | HTML, Text(combined or side-by-side) | |
diff | No | Yes | Horizontal | Yes pipe to diff-highlight[41] | ||
diff3 | No | Yes | Horizontal | |||
SG DiffMerge | Yes | Yes | Both | No | HTML, Text(unified, traditional or side-by-side) | |
DiffTool | Yes | by Intent() | Yes | Both | Text | |
Diffuse | Yes | Yes | Vertical | Yes | ||
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 | Yes | Yes | Vertical | Yes | No | |
Guiffy SureMerge | Yes | Yes | Java API | Both | Yes | HTML, Text, Unix Patch |
IntelliJ IDEA (compare) | Yes | Vertical | Yes | |||
jEdit JDiff plugin | Yes | Both | Yes | |||
KDiff3 | Yes | Yes | Both | No | ||
Kompare | Yes | Vertical | No | |||
Lazarus Diff | Yes | Yes | ||||
Meld | Yes | 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 | optional | ||||
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
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 |
---|---|---|---|---|---|---|---|---|---|
Araxis Merge | Yes | No | Browse file versions but not folders | Yes | Yes | ||||
Beyond Compare | Yes | Yes | Yes | SVN | Yes | Yes | Yes | Yes | |
Code Compare | No | No | No | Yes | No | No | No | 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 | ||||||
SG DiffMerge | Git, Mercurial, SVN, Microsoft TFS, VSS 2005 | Yes | |||||||
DiffTool | Yes + APK | No | Yes [42] | ||||||
Diffuse | Baazar, CVS, Darks Git, Mercurial, Monotone, RCS, SVN, SVK | Yes | |||||||
Eclipse (compare) | Yes CVS, Subversion, Git, Mercurial, Baazar | Yes | |||||||
Ediff | Yes | Yes | RCS, CVS, SVN, Mercurial, git (anything supported by Emacs' VC-mode)[43] | Yes | Yes | Yes | |||
ExamDiff Pro | Yes[44] | Yes[45] | normal diff only | Yes | |||||
Far Manager (compare) | No | No | No | No | No | No | Yes | No | |
fc | No | No | No | ||||||
FileMerge | No | supported by OS | No | No | No | ||||
Guiffy SureMerge | Yes | Yes | Yes | Yes | Yes[46] | ||||
IntelliJ IDEA (compare) | Yes | Yes | Yes | Yes | Yes | Yes | |||
jEdit JDiff plugin | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
KDiff3 | Yes | Yes | |||||||
Kompare | Yes | ||||||||
Lazarus Diff | |||||||||
Meld | CVS, Subversion, Git, Mercurial, Baazar | Yes | Yes | ||||||
Notepad++ (compare) | No | Yes[47] | 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 | |||||||
vimdiff | Yes | Yes | Yes | Yes | |||||
WinDiff | No | No | No | No | |||||
WinMerge | Yes | No | Mercurial,[48] Subversion,[49] Visual Source Safe, Rational ClearCase[50] | 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 |
Aspects
What aspects can be / are compared?
Name | Filename casing | CRC | Filedate | Daylight saving | Character casing |
---|---|---|---|---|---|
Araxis Merge | Yes | Yes | Yes | ||
Beyond Compare | Yes | Yes | Yes | Yes | Yes |
Code Compare | |||||
Compare++ | Yes | Yes | Yes | Yes | |
diff | Yes | No | No | No | Optional |
diff3 | |||||
SG DiffMerge | |||||
Diffuse | Optional | ||||
DiffTool | No | Yes | Yes | Yes | |
Eclipse (compare) | |||||
Ediff | |||||
ExamDiff Pro | No | Yes | Yes | Yes | Yes |
Far Manager (compare) | Yes | No | Yes | No | Yes |
fc | No | Optional | |||
FileMerge | No | No | No | Optional | |
Guiffy SureMerge | filesystem dependent | Yes | Yes | ||
IntelliJ IDEA (compare) | |||||
jEdit JDiff plugin | |||||
KDiff3 | Optional | ||||
Kompare | Yes | ||||
Lazarus Diff | |||||
Meld | |||||
Notepad++ (compare) | No | No | No | Yes | |
Perforce P4Merge | — | No | No | No | Yes |
Pretty Diff | — | 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
When files are transferred across time zones and between Microsoft FAT and NTFS file 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 winter 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.[51] Software known to have daylight-saving compensation is marked in the Aspects table.
See also
- File comparison
- File synchronization
- Comparison of file synchronization software
- List of disk cloning software
- Comparison of disk cloning software
- Comparison of hex editors
References
- ^ Scooter Software
- ^ Coode Software
- ^ Coodesoft trial
- ^ Compare++ Operating system information
- ^ SourceGear DiffMerge
- ^ register DiffMerge
- ^ Download DiffTool
- ^ diffuse
- ^ GTK+ for Python
- ^ Eclipse Compare
- ^ Michael Kifer
- ^ PrestoSoft
- ^ ExamDiff Trial
- ^ Microsoft
- ^ NeXT Product Marketing (Fall 1993). "What's New in Release 3.2?". NEXTSTEP In Focus. 3 (4). NeXT Computer, Inc. Retrieved 18 July 2014.
- ^ Guiffy Software
- ^ JetBrains
- ^ jedit.org
- ^ kdiff3
- ^ Otto Bruggeman
- ^ 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
- ^ WinMerge in Wine
- ^ WinMerge in Wine
- ^ USC CSSE
- ^ UltraEdit
- ^ UltraCompare Downloads
- ^ a b Compare logical sections (class, methods)
- ^ Examdiff
- ^ Examdiff
- ^ a b Visual Rename
- ^ https://github.com/git/git/tree/master/contrib/diff-highlight
- ^ auto detection of ASC-II, Latin-1, CP1252, UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, UTF-32BE, Unix, Windows and Mac; text of DOCX, XLSX, PPTX, ODT, ODS, ODP
- ^ 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. Retrieved 2010-07-06.
- ^ "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."