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 SoftwareNo; ProprietaryNo19962026-03-24 (v5.2.1)YesYesYes> 2GB (64 bits)
Compare++Coode SoftwareNo; ProprietaryNo20102016-7-17 (3.0.1.0b)YesNoNo
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 KiferYes; GPLYes19942.81.4YesYes (Mac OS X)YesAnything with Emacs and diff
ExamDiff ProPrestoSoftNo; ProprietaryNo19982026-02-06 (Build 16.0.1.22)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, a Linux fork of FAR Manager v2 which also works on OSX/MacOS and BSD.
fcMicrosoftNo; ProprietaryYes; Part of OS1987Yes (DOS)NoNo
FileMerge (aka opendiff)Apple Inc.No; ProprietaryYes; (part of Apple Developer Tools)1993 (part of NEXTSTEP 3.2)2014 (v2.8)NoYes (Mac OS X)No
FreeFileSync[data missing]ZenjuYes; GPLv3Yes20082023-10-23 (v13.2)YesYesYes
Guiffy SureMergeGuiffy SoftwareNo; ProprietaryNo20002025-05-06 (v12.4)YesYesYesAnything with Java> 2GB
IntelliJ IDEA (compare)JetBrainsNo; ProprietaryNo20012019-08-20 (2019.2.1)YesYesYes
jEdit JDiff pluginVariousYes; GPLYes19982020-09-03 (5.6.0)YesYesYesAnything with Java
Lazarus DiffLazarus (software)Yes; GPLYes20002020-07-11 (2.0.10)YesYesYesFreeBSD
MeldStephen KennedyYes; GPLv2+Yes20022024-03-24 (3.22.2)YesYesYesBSD, Solaris
Notepad++ (compare)VariousYes; GPLv3Yes20092015-01-06 (1.5.6.6)YesNoNo
Perforce P4MergePerforceNo; ProprietaryYes2019 (2019.1/1815056)YesYesYesSun Solaris
Pretty DiffAustin CheneyYes; MIT-compatibleYes20092019-09-02 (101.2.6)Yes (Web)Yes (Web)Yes (Web)Node.js
TkdiffTkdiffYes; GPLv2+Yes2003 (or before)2021-03-24 (v5.2.1)Yes (Tcl)Yes (Tcl)Yes (Tcl)Anything with Tcl
Total Commander (compare)Christian GhislerNo; ProprietaryNo2020-03-25 (v9.51)YesNoNo
twdiff (TextWrangler Diff Helper)[data missing]Bare Bones Software, Inc.No; ProprietaryYes; with TextWrangler2012 (1.0 (v22))NoYesNoNo
vimdiffBram Moolenaar et al.Yes; GPL-compatibleYes20012016-10-03 (v8.0.0022)YesYesYesAnything with vim
WinDiffMicrosoftNo; ProprietaryYes; Part of Platform SDK19922010-05-14 (v6.1.7716.0)YesNoNoNo
WinMergeDean GrimmYes; GPLYes19982025-04-27 (v2.16.48)Yes (Win95 and up)Yes (in wine)Yes (in wine)2 GB
KDiff3[data missing] (part of KDE SDK, as well as a plug-in to KDE Dolphin file manager)Joachim Eibl and KDE SDK KDiff3 TeamYes GPL v2Yes<2004 (v0.9.86)2023-01-13 (v1.10)Yes as part of KDevelop or from or site (most recent version) as separate application.Yes Can be downloaded from or as separate stand-alone application fromYes Install from your Linux distribution repositories, or as AppStream, from , or as GIT project or from/on .Any other Unix with KDE/KF5, Qt5 and CMake, e.g. FreeBSD & NetBSD?
NameCreatorFOSSFreeFirst public release dateYear of latest stable versionWindowsMacintoshLinuxOther platformsMax supported file size

Compare features

NameShow in-line changesDirectory comparisonBinary comparisonMoved lines3-way comparisonMergeStructured comparisonManual compare alignmentImage compare
Beyond CompareYesYesYesYesYes (Files and Folders)Yes (Pro only)YesYes
Compare++YesYesYesYesYes (C/C++, C#, Java, JavaScript, CSS3)
diffNoYesPartialNoNoNo
diff3NoNoYes (non-optional)
Eclipse (compare)YesNo (only ancestor)YesNo
EdiffYesYesYesYesYes
ExamDiff ProYesYesYesYesYes (ExamDiff Pro Master only)Yesmanual synchronization
Far Manager (compare)Yes (Via plugin)YesYesYes (Via plugin)NoNo
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
NameShow in-line changesDirectory comparisonBinary comparisonMoved lines3-way comparisonMergeStructured comparisonManual compare alignmentImage compare

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-highlight
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)YesYesYes
ExamDiff ProYesYesnormal diff onlyYes
Far Manager (compare)NoNoNoNoNoNoYesNo
fcNoNoNo
FileMerge (aka opendiff)Nosupported by OSNoNoNo
Guiffy SureMergeYesYesYesYesYes
IntelliJ IDEA (compare)YesYesYesYesYesYesYesYes
jEdit JDiff pluginYesYesYesYesYesYesYes
Lazarus Diff
MeldCVS, Subversion, Git, Mercurial, BaazarYesYes
Notepad++ (compare)NoYesGit, Subversion (compare against base)NoNoNoYesNo
Perforce P4MergeNoYes
Pretty DiffNoNoNoNoNoNoNoYesYes
TkdiffNoNoCVS, RCS, SubversionNoNoNoNoNo
Total Commander (compare)YesYesYesNoNoNoNoYesNo
vimdiffYesYesYesYes
WinDiffNoNoNoNo
WinMergeYesNoMercurial, Subversion, Visual Source Safe, Rational ClearCaseYesYes
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 P4Merge—N/aNoNoNoYes
Pretty Diff—N/aNoNoNoOptional
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. Software known to have daylight-saving compensation is marked in the Aspects table.

See also

Notes