Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
Comparison of file comparison tools
List article

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.

NameCreatorFOSSFreeFirst public release dateYear of latest stable versionWindowsMacintoshLinuxOther platformsMax supported file size
Beyond CompareScooter Software1No; ProprietaryNo19962025-04-16 (v5.0.7)YesYesYes> 2GB (64 bits)
Compare++Coode Software2No; ProprietaryNo20102016-7-17 (3.0.1.0b)Yes3NoNo
diff, diff3AT&TYes; BSD 3-clause, BSD 4-clause, CDDL, GPL, ProprietaryYes1974NoYes (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 Kifer4Yes; GPLYes19942.81.4Yes5Yes (Mac OS X)YesAnything with Emacs and diff
ExamDiff ProPrestoSoft6No; ProprietaryNo19982025-04-11 (Build 16.0.1.0)Yes (WinXP and up)Yes (in Wine)Yes (in Wine)
Far Manager (compare)Eugene Roshal (original); FAR GroupYes; Revised BSD licenseYes19962022-02-02 (v3.0 build 5959)YesNoNoThere's a beta-version of far2l,7 a Linux fork of FAR Manager v2 which also works on OSX/MacOS and BSD.
fcMicrosoft8No; ProprietaryYes; Part of OS1987Yes (DOS)NoNo
FileMerge (aka opendiff)Apple Inc.No; ProprietaryYes; (part of Apple Developer Tools)1993 (part of NEXTSTEP 3.29)2014 (v2.8)NoYes (Mac OS X)No
FreeFileSync[data missing]ZenjuYes; GPLv3Yes20082023-10-23 (v13.2)YesYesYes
Guiffy SureMergeGuiffy Software10No; ProprietaryNo20002024-05-07 (v12.3)YesYesYesAnything with Java> 2GB
IntelliJ IDEA (compare)JetBrains11No; ProprietaryNo20012019-08-20 (2019.2.1)YesYesYes
jEdit JDiff pluginVarious12Yes; GPLYes19982020-09-03 (5.6.0)YesYesYesAnything with Java
Lazarus DiffLazarus (software)Yes; GPLYes20002020-07-11 (2.0.10)YesYesYesFreeBSD
MeldStephen Kennedy13Yes; GPLv2+Yes20022024-03-24 (3.22.2)Yes14YesYesBSD, Solaris
Notepad++ (compare)VariousYes; GPLv3Yes20092015-01-06 (1.5.6.6)Yes15NoNo
Perforce P4MergePerforceNo; ProprietaryYes2019 (2019.1/1815056)YesYesYesSun Solaris
Pretty DiffAustin Cheney16Yes; MIT-compatibleYes20092019-09-02 (101.2.6)Yes (Web)Yes (Web)Yes (Web)Node.js
TkdiffTkdiff17Yes; GPLv2+Yes2003 (or before)2021-03-24 (v5.2.1)Yes (Tcl)Yes (Tcl)Yes (Tcl)Anything with Tcl
Total Commander (compare)Christian Ghisler18No; ProprietaryNo2020-03-25 (v9.51)YesNoNo
twdiff (TextWrangler Diff Helper)[data missing]Bare Bones Software, Inc.19No; ProprietaryYes; with TextWrangler2012 (1.0 (v22))NoYesNoNo
vimdiffBram Moolenaar et al.Yes; GPL-compatible20Yes20012016-10-03 (v8.0.0022)YesYesYesAnything with vim
WinDiffMicrosoft21No; ProprietaryYes; Part of Platform SDK19922010-05-14 (v6.1.7716.0)YesNoNoNo
WinMergeDean Grimm22Yes; GPLYes19982025-04-27 (v2.16.48)23Yes (Win95 and up)Yes (in wine24)Yes (in wine25)2 GB
KDiff3[data missing] (part of KDE SDK,26 as well as a plug-in to KDE Dolphin file manager)2728Joachim Eibl and KDE SDK KDiff3 Team29Yes GPL v2Yes<2004 (v0.9.86)2023-01-13 (v1.10)Yes as part of KDevelop KDE SDK download site or from Windows store or KDE download site (most recent version) as separate application.Yes Can be downloaded from KDE SDK download site or as separate stand-alone application from KDE download siteYes Install from your Linux distribution repositories, or as AppStream, from [1], or as GIT project KDE Gitlab30 or from/on [2].31Any other Unix with KDE/KF5, Qt5 and CMake, e.g. FreeBSD32 & NetBSD33?
NameCreatorFOSSFreeFirst public release dateYear of latest stable versionWindowsMacintoshLinuxOther platformsMax supported file size

Compare features

NameShowin-linechangesDirectory comparisonBinarycomparisonMoved lines3-way comparisonMergeStructured comparison34Manual compare alignmentImagecompare
Beyond CompareYesYesYesYesYes (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 ProYesYesYesYes35Yes (ExamDiff Pro Master only)36Yesmanual synchronization
Far Manager (compare)Yes (Via plugin)37YesYesYes (Via plugin)38NoNo
fcNoNoYesNoNo
FileMerge (aka opendiff)YesYesYesYes (optional ancestor)Yes
Guiffy SureMergeYesYesYesYesYesYesYes
IntelliJ IDEA (compare)YesYesYesNoYesYesYesYes
jEdit JDiff pluginYesNoYes
Lazarus Diff
MeldYesYesNoNoYesYesline alignment, unlink scroll
Notepad++ (compare)YesNoNoYesNoNoNo
Perforce P4MergeYesNoNoYesYesYes
Pretty DiffYesYesNoNoNoNoYesNo
TkdiffYesNoNoNoNoNo
Total Commander (compare)YesYesYesNoNoYesNoresync comparisonNo
vimdiffYesYes (via DirDiff plugin)YesYes
WinDiffYesYesYesYesNoNo
WinMergeYesYesYesYes (via Options)YesYesYesYes
NameShowin-linechangesDirectory comparisonBinarycomparisonMoved lines3-way comparisonMergeStructured comparison39Manual compare alignmentImagecompare

API / editor features

NameGUICLIScriptingHorizontal / verticalSyntax highlightingReports
Beyond CompareYesYesYesBothYesXML, HTML, CSV, Text, Unix Patch
Compare++YesYesBothYesHTML, Text(combined or side-by-side)
diffNoYesHorizontalYes pipe to diff-highlight40
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
Lazarus DiffYesYes
MeldYesNoYesNo
Notepad++ (compare)YesYesBothYesNo
Perforce P4MergeYesYesVerticalYesNo
Pretty DiffYesYesJavaScriptBothYesXHTML
TkdiffYes
Total Commander (compare)YesBothNoNo
vimdiffYesYesvim scriptBothYesHTML
WinDiffYesYesHorizontalNoText
WinMergeYesYesBothYesCSV, Tab-delimited, HTML, XML
NameGUICLIScriptingHorizontal / verticalSyntax highlightingReports

Other features

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)41YesYesYes
ExamDiff ProYes42Yes43normal diff onlyYes
Far Manager (compare)NoNoNoNoNoNoYesNo
fcNoNoNo
FileMerge (aka opendiff)Nosupported by OSNoNoNo
Guiffy SureMergeYesYesYesYesYes44
IntelliJ IDEA (compare)YesYesYesYesYesYesYesYes
jEdit JDiff pluginYesYesYesYesYesYesYes
Lazarus Diff
MeldCVS, Subversion, Git, Mercurial, BaazarYesYes
Notepad++ (compare)NoYes45Git, Subversion (compare against base)NoNoNoYesNo
Perforce P4MergeNoYes
Pretty DiffNoNoNoNoNoNoNoYesYes
TkdiffNoNoCVS, RCS, SubversionNoNoNoNoNo
Total Commander (compare)YesYesYesNoNoNoNoYesNo
vimdiffYesYesYesYes
WinDiffNoNoNoNo
WinMergeYesNoMercurial,46 Subversion,47 Visual Source Safe, Rational ClearCase48YesYes
NameZIP supportFTP supportSFTP supportVersion control browsingPatch creationPatch applicationPatch previewUnicode supportXML-aware

Aspects

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
Lazarus Diff
Meld
Notepad++ (compare)NoNoNoYes
Perforce P4MergeNoNoNoYes
Pretty DiffNoNoNoOptional
Tkdiff
Total Commander (compare)OptionalYes (in synchronize only)Optional
vimdiffNoNoNoNoYes
WinDiffNoNowhen differentYesOptional
WinMergeNoNoOptionalOptional
NameFilename casingCRCFiledateDaylight savingCharacter casing

Time zone 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 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.49 Software known to have daylight-saving compensation is marked in the Aspects table.

See also

Notes

References

  1. Scooter Software http://www.scootersoftware.com/

  2. "Coode Software". Archived from the original on 2018-12-21. Retrieved 2020-12-13. https://web.archive.org/web/20181221013311/http://coodesoft.com/

  3. Compare++ Operating system information http://download.cnet.com/Compare/3000-2229_4-75206501.html?tag=mncol

  4. Michael Kifer http://www.delorie.com/gnu/docs/emacs/ediff_toc.html

  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. /wiki/Diff_utility

  6. PrestoSoft http://www.prestosoft.com

  7. "Far2l". GitHub. 26 July 2022. https://github.com/elfmz/far2l

  8. Microsoft http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/fc.mspx

  9. NeXT Product Marketing (Fall 1993). "What's New in Release 3.2?". NEXTSTEP in Focus. 3 (4). NeXT Computer, Inc. Retrieved 18 July 2014. http://cdn.preterhuman.net/texts/computing/nextstep-openstep/NEXTSTEP_In_Focus/InFocusFall1993/1489_Whats_New_in_Release_3.2.rtf

  10. Guiffy Software https://www.guiffy.com/

  11. JetBrains http://www.jetbrains.com/

  12. jedit.org http://www.jedit.org

  13. Stephen Kennedy http://meld.sourceforge.net/

  14. Meld/Windows https://wiki.gnome.org/Apps/Meld/Windows

  15. Notepad++ compare plugin https://bitbucket.org/uph0/compare

  16. Pretty Diff http://prettydiff.com/

  17. tkdiff http://tkdiff.sourceforge.net/

  18. Christian Ghisler http://www.ghisler.com/

  19. Bare Bones Software, Inc. http://www.barebones.com/

  20. vim license http://vimdoc.sourceforge.net/htmldoc/uganda.html#license

  21. Microsoft http://support.microsoft.com/kb/159214

  22. Dean Grimm http://winmerge.org/

  23. https://github.com/WinMerge/winmerge/releases/tag/v2.16.42.1 https://github.com/WinMerge/winmerge/releases/tag/v2.16.42.1

  24. WinMerge in Wine https://appdb.winehq.org/objectManager.php?sClass=application&iId=1755

  25. WinMerge in Wine https://appdb.winehq.org/objectManager.php?sClass=application&iId=1755

  26. "KDE SDK Project Page". KDE Invent: KDE SDK. Retrieved 2023-03-09. https://invent.kde.org/sdk

  27. "KDiff3". KDE Applications. Retrieved 2023-03-09. https://apps.kde.org/kdiff3/

  28. "The KDiff3 Handbook". docs.kde.org. Retrieved 2023-03-09. https://docs.kde.org/stable5/en/kdiff3/kdiff3/index.html

  29. "KDE KDiff3". Retrieved 2023-03-09. https://invent.kde.org/sdk/kdiff3

  30. "KDevelop / KDevelop · GitLab (full KDevelop project)". GitLab. Retrieved 2023-03-09. https://invent.kde.org/kdevelop/kdevelop

  31. "Using KDiff3 as a Git Diff and Merging Tool". docs.kde.org. Retrieved 2023-03-09. https://docs.kde.org/trunk5/en/kdiff3/kdiff3/git.html

  32. "FreeBSD/Setup/Ports - KDE Community Wiki". community.kde.org. Retrieved 2023-03-09. https://community.kde.org/FreeBSD/Setup/Ports

  33. "pkgsrc.se | The NetBSD package collection". pkgsrc.se. Retrieved 2023-03-09. https://pkgsrc.se/devel/kdiff3

  34. Compare logical sections (class, methods).

  35. Examdiff http://blog.prestosoft.com/2008/09/moved-blocks.html

  36. Examdiff http://www.prestosoft.com/edp_features.asp

  37. Visual Compare http://forum.farmanager.com/viewtopic.php?f=11&t=5193

  38. Visual Compare http://forum.farmanager.com/viewtopic.php?f=11&t=5193

  39. Compare logical sections (class, methods).

  40. "Git/Contrib/Diff-highlight at master · git/Git". GitHub. https://github.com/git/git/tree/master/contrib/diff-highlight

  41. gnu.org Support-for-Version-Control https://www.gnu.org/software/emacs/manual/html_node/ediff/Support-for-Version-Control.html

  42. through a plug-in http://www.prestosoft.com/ps.asp?page=edp_plugins#9

  43. through a plug-in http://www.prestosoft.com/ps.asp?page=edp_plugins#10

  44. UTF8, UTF16, MBCS, SJIS, over 150 file encoding and character set formats.

  45. Notepad++ FTP plugin https://sourceforge.net/projects/nppftp

  46. "tortoisehg / stable / wiki / FAQ —". Bitbucket.org. Archived from the original on 2010-07-15. Retrieved 2010-07-06. https://web.archive.org/web/20100715205329/http://bitbucket.org/tortoisehg/stable/wiki/FAQ#how-can-i-use-winmerge-as-my-visual-diff-tool

  47. "Using WinMerge with other tools – WinMerge 2.12 Manual". Winmerge.org. Archived from the original on 2010-07-10. Retrieved 2010-07-06. https://web.archive.org/web/20100710012031/http://winmerge.org/docs/manual/VersionControl.html

  48. "About". WinMerge. Archived from the original on 2010-07-03. Retrieved 2010-07-06. https://web.archive.org/web/20100703223053/http://winmerge.org/about/

  49. Example: "Beyond Compare" help describes a user setting "timezone differences – ignores timestamp differences that are multiples of an exact hour."