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.
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-01-15 (v5.0.5) | 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-01-23 (Build 15.0.1.25) | 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 | 2024-05-07 (v12.3) | 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 | 2024-07-28 (v2.16.42.1) [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 , or as GIT project KDE Gitlab [28] or from/on . [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 |
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 | partly | 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) | 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 |
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 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.
In computing, the utility diff is a data comparison tool that computes and displays the differences between the contents of files. Unlike edit distance notions used for other purposes, diff is line-oriented rather than character-oriented, but it is like Levenshtein distance in that it tries to determine the smallest set of deletions and insertions to create one file from the other. The utility displays the changes in one of several standard formats, such that both humans or computers can parse the changes, and use them for patching.
KDevelop is a free and open-source integrated development environment (IDE) for Unix-like computer operating systems and Windows. It provides editing, navigation and debugging features for several programming languages, and integration with build automation and version-control systems, using a plugin-based architecture.
The KDE Advanced Text Editor, or Kate, is a source code editor developed by the KDE free software community. It has been a part of KDE Software Compilation since version 2.2, which was first released in 2001. Intended for software developers, it features syntax highlighting, code folding, customizable layouts, multiple cursors and selections, regular expression support, and extensibility via plugins. The text editor's mascot is Kate the Cyber Woodpecker.
This article provides basic comparisons for notable text editors. More feature details for text editors are available from the Category of text editor features and from the individual products' articles. This article may not be up-to-date or necessarily all-inclusive.
Kexi is a visual database applications creator tool by KDE, designed to fill the gap between spreadsheets and database solutions requiring more sophisticated development. Kexi can be used for designing and implementing databases, data inserting and processing, and performing queries. It is developed within the Calligra project but is released separately.
The following tables compare general and technical information for a number of notable file managers.
The following tables compare general and technical information between a number of notable IRC client programs which have been discussed in independent, reliable prior published sources.
WinMerge is a free software tool for data comparison and merging of text-like files. It is useful for determining what has changed between versions, and then merging changes between versions.
The following tables describe attributes of notable version control and software configuration management (SCM) systems that can be used to compare and contrast the various systems.
A desktop environment is a collection of software designed to give functionality and a certain look and feel to an operating system.
This is a technical feature comparison of different disk encryption software.
Geany is a free and open-source lightweight GUI text editor using Scintilla and GTK, including basic IDE features. It is designed to have short load times, with limited dependency on separate packages or external libraries on Linux. It has been ported to a wide range of operating systems, such as BSD, Linux, macOS, Solaris and Windows. The Windows port lacks an embedded terminal window; also missing from the Windows version are the external development tools present under Unix, unless installed separately by the user. Among the supported programming languages and markup languages are C, C++, C#, Java, JavaScript, PHP, HTML, LaTeX, CSS, Python, Perl, Ruby, Pascal, Haskell, Erlang, Vala and many others.
Cppcheck is a static code analysis tool for the C and C++ programming languages. It is a versatile tool that can check non-standard code. The creator and lead developer is Daniel Marjamäki.
Unity Version Control is a cross-platform commercial distributed version control tool developed by Códice Software for Microsoft Windows, Mac OS X, Linux, and other operating systems. It includes a command-line tool, native GUIs, diff and merge tool and integration with a number of IDEs. It is a full version control stack not based on Git.
Meld is a visual diff and merge tool, targeted at developers. It allows users to compare two or three files or directories visually, color-coding the different lines.
ownCloud is a free and open-source software project for content collaboration, file-sharing, and file-syncing. It's usable in distributed and federated enterprise scenarios.
Guiffy SureMerge is a data comparison utility. In addition to comparing files, the program is capable of doing side-by-side comparison of directories and archives. The program is also capable of performing automatic 3-way file merges. It is available for Windows, Mac OS, Linux, and Unix operating systems.
The KDE Gear is a set of applications and supporting libraries that are developed by the KDE community, primarily used on Linux-based operating systems but mostly multiplatform, and released on a common release schedule.
Spacemacs is a configuration framework for GNU Emacs. It can take advantage of all of GNU Emacs' features, including both graphical and command-line user interfaces, and being executable under X Window System and within a Unix shell terminal. It is free and open-source software (FOSS) released under the GPL-3.0-or-later license.