This article comparescomputer software tools that comparefiles, and in many casesdirectories or folders, whether it is their main purpose or as part of more generalfile management.
Basic general information aboutfile 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 | 2025-10-29 (v5.1.6) | Yes | Yes | Yes | > 2GB (64 bits) | |
| Compare++ | Coode Software[2] | No; Proprietary | No | 2010 | 2016-7-17 (3.0.1.0b) | Yes[3] | No | No | ||
| diff,diff3 | AT&T | Yes;BSD 3-clause,BSD 4-clause,CDDL, GPL, Proprietary | Yes | 1974 | No | Yes (Mac OS X) | Yes | ported to most platforms as part ofSCCS | > 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 withJava | ||
| Ediff | Michael Kifer[4] | Yes;GPL | Yes | 1994 | 2.81.4 | Yes[a] | Yes (Mac OS X) | Yes | Anything withEmacs anddiff | |
| ExamDiff Pro | PrestoSoft[5] | No; Proprietary | No | 1998 | 2025-10-01 (Build 16.0.1.10) | Yes (WinXP and up) | Yes (in Wine) | Yes (in Wine) | ||
| Far Manager (compare) | Eugene Roshal (original); FAR Group | Yes; RevisedBSD license | Yes | 1996 | 2022-02-02 (v3.0 build 5959) | Yes | No | No | There's a beta-version of far2l,[6] a Linux fork of FAR Manager v2 which also works on OSX/MacOS and BSD. | |
| fc | Microsoft[7] | No; Proprietary | Yes; Part ofOS | 1987 | Yes (DOS) | No | No | |||
| FileMerge (aka opendiff) | Apple Inc. | No; Proprietary | Yes; (part ofApple Developer Tools) | 1993 (part ofNEXTSTEP 3.2[8]) | 2014 (v2.8) | No | Yes (Mac OS X) | No | ||
| FreeFileSync[data missing] | Zenju | Yes;GPLv3 | Yes | 2008 | 2023-10-23 (v13.2) | Yes | Yes | Yes | ||
| Guiffy SureMerge | Guiffy Software[9] | No; Proprietary | No | 2000 | 2025-05-06 (v12.4) | Yes | Yes | Yes | Anything withJava | > 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 | 2020-09-03 (5.6.0) | Yes | Yes | Yes | Anything withJava | |
| Lazarus Diff | Lazarus (software) | Yes; GPL | Yes | 2000 | 2020-07-11 (2.0.10) | Yes | Yes | Yes | FreeBSD | |
| Meld | Stephen Kennedy[12] | Yes;GPLv2+ | Yes | 2002 | 2024-03-24 (3.22.2) | Yes[13] | Yes | Yes | BSD,Solaris | |
| Notepad++ (compare) | Various | Yes;GPLv3 | Yes | 2009 | 2015-01-06 (1.5.6.6) | Yes[14] | No | No | ||
| Perforce P4Merge | Perforce | No; Proprietary | Yes | 2019 (2019.1/1815056) | Yes | Yes | Yes | Sun Solaris | ||
| Pretty Diff | Austin Cheney[15] | Yes; MIT-compatible | Yes | 2009 | 2019-09-02 (101.2.6) | Yes (Web) | Yes (Web) | Yes (Web) | Node.js | |
| Tkdiff | Tkdiff[16] | Yes;GPLv2+ | Yes | 2003 (or before) | 2021-03-24 (v5.2.1) | Yes (Tcl) | Yes (Tcl) | Yes (Tcl) | Anything with Tcl | |
| Total Commander (compare) | Christian Ghisler[17] | No; Proprietary | No | 2020-03-25 (v9.51) | Yes | No | No | |||
| twdiff (TextWrangler Diff Helper)[data missing] | Bare Bones Software, Inc.[18] | No; Proprietary | Yes; withTextWrangler | 2012 (1.0 (v22)) | No | Yes | No | No | ||
| vimdiff | Bram Moolenaar et al. | Yes; GPL-compatible[19] | Yes | 2001 | 2016-10-03 (v8.0.0022) | Yes | Yes | Yes | Anything withvim | |
| WinDiff | Microsoft[20] | No; Proprietary | Yes; Part ofPlatform SDK | 1992 | 2010-05-14 (v6.1.7716.0) | Yes | No | No | No | |
| WinMerge | Dean Grimm[21] | Yes; GPL | Yes | 1998 | 2025-04-27 (v2.16.48)[22] | Yes (Win95 and up) | Yes (in wine[23]) | Yes (in wine[23]) | 2 GB | |
| KDiff3[data missing] (part of KDE SDK,[24] as well as a plug-in to KDE Dolphin file manager)[25][26] | Joachim Eibl and KDE SDK KDiff3 Team[27] | Yes GPL v2 | Yes | <2004 (v0.9.86) | 2023-01-13 (v1.10) | Yes as part ofKDevelopKDE SDK download site or fromWindows store orKDE download site (most recent version) as separate application. | Yes Can be downloaded fromKDE SDK download site or as separate stand-alone application fromKDE download site | Yes Install from your Linux distribution repositories, or asAppStream, from[1], or as GIT projectKDE Gitlab[28] or from/on[2].[29] | Any otherUnix with KDE/KF5, Qt5 and CMake, e.g.FreeBSD[30] &NetBSD[31] | ? |
| Name | Creator | FOSS | Free | First public release date | Year of latest stable version | Windows | Macintosh | Linux | Other platforms | Max supported file size |
| Name | Show in-line changes | Directory comparison | Binary comparison | Moved lines | 3-way comparison | Merge | Structured comparison[b] | Manual compare alignment | Image compare |
|---|---|---|---|---|---|---|---|---|---|
| Beyond Compare | Yes | Yes | Yes | Yes | Yes (Files and Folders) | Yes (Pro only) | Yes | Yes | |
| Compare++ | Yes | Yes | Yes | Yes | Yes (C/C++, C#, Java, JavaScript, CSS3) | ||||
| diff | No | Yes | Partial | 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[32] | Yes (ExamDiff Pro Master only)[33] | Yes | manual synchronization | ||
| Far Manager (compare) | Yes (Via plugin)[34] | Yes | Yes | Yes (Via plugin)[34] | 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 | No | Yes | Yes | Yes | Yes | |
| jEdit JDiff plugin | Yes | No | Yes | ||||||
| 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 | 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 | Yes | Yes (via Options) | Yes | Yes | Yes | Yes | |
| Name | Show in-line changes | Directory comparison | Binary comparison | Moved lines | 3-way comparison | Merge | Structured comparison[b] | Manual compare alignment | Image compare |
| 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[35] | ||
| 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 | |||
| Lazarus Diff | Yes | Yes | ||||
| Meld | Yes | No | Yes | No | ||
| Notepad++ (compare) | Yes | Yes | Both | Yes | No | |
| Perforce P4Merge | Yes | Yes | Vertical | Yes | 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 | Both | Yes | CSV, Tab-delimited, HTML, XML | |
| Name | GUI | CLI | Scripting | Horizontal / vertical | Syntax highlighting | Reports |
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) | YesCVS,Subversion,Git,Mercurial,Baazar | Yes | |||||||
| Ediff | Yes | Yes | RCS, CVS, SVN, Mercurial, git (anything supported by Emacs' VC-mode)[36] | Yes | Yes | Yes | |||
| ExamDiff Pro | Yes[37] | Yes[38] | 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[c] | ||||
| IntelliJ IDEA (compare) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
| jEdit JDiff plugin | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
| Lazarus Diff | |||||||||
| Meld | CVS,Subversion,Git,Mercurial,Baazar | Yes | Yes | ||||||
| Notepad++ (compare) | No | Yes[39] | 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,[40] Subversion,[41] Visual Source Safe, Rational ClearCase[42] | Yes | Yes | ||||
| Name | ZIP support | FTP support | SFTP support | Version control browsing | Patch creation | Patch application | Patch preview | Unicode support | XML-aware |
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 | |||||
| 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 | |
| Name | Filename casing | CRC | Filedate | Daylight saving | Character casing |
When files are transferred across time zones and between MicrosoftFAT andNTFSfile 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 anddaylight saving time (DST). Some, but not all, file comparison and synchronisation software can be configured to ignore the DST and time-zone differences.[d] Software known to have daylight-saving compensation is marked in theAspects table.