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
[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 | 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 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[a] | Yes (Mac OS X) | Yes | Anything with Emacs and diff | |
| 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; Revised BSD 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 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 | ||
| 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 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 | 2020年09月03日 (5.6.0) | Yes | Yes | Yes | Anything with Java | |
| 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; with TextWrangler | 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 with vim | |
| WinDiff | Microsoft[20] | No; Proprietary | Yes; Part of Platform 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 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 site | Yes Install from your Linux distribution repositories, or as AppStream, from [1], or as GIT project KDE Gitlab [28] or from/on [2].[29] | Any other Unix 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 |
Compare features
[edit ]| 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 |
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[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 |
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)[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 |
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 | |||||
| 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 |
Time zone effects
[edit ]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.[d] Software known to have daylight-saving compensation is marked in the Aspects table.
See also
[edit ]- File comparison
- File synchronization
- Comparison of file synchronization software
- List of disk cloning software
- Comparison of disk cloning software
- Comparison of hex editors
Notes
[edit ]- ^ 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.
- ^ a b Compare logical sections (class, methods).
- ^ UTF8, UTF16, MBCS, SJIS, over 150 file encoding and character set formats.
- ^ Example: "Beyond Compare" help describes a user setting "timezone differences – ignores timestamp differences that are multiples of an exact hour."
References
[edit ]- ^ Scooter Software
- ^ "Coode Software". Archived from the original on 2018年12月21日. Retrieved 2020年12月13日.
- ^ Compare++ Operating system information
- ^ Michael Kifer
- ^ PrestoSoft
- ^ "Far2l". GitHub . 26 July 2022.
- ^ 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
- ^ Stephen Kennedy
- ^ Meld/Windows
- ^ Notepad++ compare plugin
- ^ Pretty Diff
- ^ tkdiff
- ^ Christian Ghisler
- ^ Bare Bones Software, Inc.
- ^ vim license
- ^ Microsoft
- ^ Dean Grimm
- ^ "Release v2.16.42.1 · WinMerge/Winmerge". GitHub .
- ^ a b WinMerge in Wine
- ^ "KDE SDK Project Page". KDE Invent: KDE SDK. Retrieved 2023年03月09日.
- ^ "KDiff3". KDE Applications. Retrieved 2023年03月09日.
- ^ "The KDiff3 Handbook". docs.kde.org. Retrieved 2023年03月09日.
- ^ "KDE KDiff3" . Retrieved 2023年03月09日.
- ^ "KDevelop / KDevelop · GitLab (full KDevelop project)". GitLab. Retrieved 2023年03月09日.
- ^ "Using KDiff3 as a Git Diff and Merging Tool". docs.kde.org. Retrieved 2023年03月09日.
- ^ "FreeBSD/Setup/Ports - KDE Community Wiki". community.kde.org. Retrieved 2023年03月09日.
- ^ "pkgsrc.se | The NetBSD package collection". pkgsrc.se. Retrieved 2023年03月09日.
- ^ Examdiff
- ^ Examdiff
- ^ a b Visual Compare
- ^ "Git/Contrib/Diff-highlight at master · git/Git". GitHub .
- ^ gnu.org Support-for-Version-Control
- ^ through a plug-in
- ^ through a plug-in
- ^ Notepad++ FTP plugin
- ^ "tortoisehg / stable / wiki / FAQ —". Bitbucket.org. Archived from the original on 2010年07月15日. Retrieved 2010年07月06日.
- ^ "Using WinMerge with other tools – WinMerge 2.12 Manual". Winmerge.org. Archived from the original on 2010年07月10日. Retrieved 2010年07月06日.
- ^ "About". WinMerge. Archived from the original on 2010年07月03日. Retrieved 2010年07月06日.