awesome-diff-tools
awesome-diff-tools copied to clipboard
Awesome tools that show differences between files and folders.
Awesome Diff Tools 
A collaborative list of great tools that show differences between files and folders. Feel free to contribute to this list.
Contents
-
Source Code
- Standard Tools
- Semantic Diffs
- Diff Enhancers
- Other Text Formats
- Databases
- Binary Data
- Folder Comparison
Source Code
Standard Tools
The most commonly used tools to display changes between two versions of a source code.
- GNU Diffutils - Popular set of tools to compute unified diffs between files, supports two-way and three-way diffs.
- git (diff) - Popular version control system, can compute unified diffs between commits, workings trees, branches, etc.
Semantic Diffs
Programming language aware diffs that provide additional features like hiding syntax-only changes.
- diffsitter - Terminal utility to generate unified diffs, hides style changes, but doesn't detect moved code.
- difftastic - Terminal utility to generate side-by-side diffs, hides style changes and supports many languages, but doesn't detect moved code.
- gumtree - Web/GUI/Text frontend to generate side-by-side diffs, hides style changes and detects moved code.
- SemanticDiff - VS Code extension/GitHub App to generate side-by-side diffs, hides style changes, detects moved code blocks and simple refactorings.
- zograscope - Terminal utility to generate side-by-side diffs, hides style changes, mostly focused on C/C++.
Diff Enhancers
Wrappers that enhance the output of an existing diff tool.
- delta - Pager for (git) diff, adds syntax highlighting, inline and side-by-side view, support for git blame and merge conflicts.
- diff-so-fancy - Pager for (git) diff, changes colors and highlights inline changes, various options to customize output format.
- diffr - Pager for git diff, changes colors and highlights inline changes.
- dunk - Postprocesses the output of git diff to generate side-by-side diffs, supports syntax highlighting and highlights inline changes.
- git-split-diffs - Pager for (git) diff, displays changes like GitHub split diffs (side-by-side diffs) with syntax highlighting.
- icdiff - Standalone application for side-by-side diffs with syntax highlighting.
-
riff - Wrapper around (
git
)diff
highlighting which parts of lines that changed. - ydiff - Pager for git diff, supports unified and side-by-side view, highlights inline changes.
Other Text Formats
Diff utilities for non-code based text formats.
- daff - Library for comparing tables format such as csv files.
- dyff - Pager for git diff (or standalone) for YAML/JSON, enhances display of changes and their location.
- Graphtage - Semantic diff for JSON, JSON5, XML, HTML, YAML, CSV.
- jd - Creates diffs for JSON/YAML files, also supports patching.
- JSON Diff - Online tool to compute a semantic diff for JSON files.
- nbdime - Diffing and merging of Jupyter Notebooks.
- OpenAPI-diff - Utility for comparing two OpenAPI specifications.
- prettier-diff - Wrapper around git diff for JavaScript/JSON, preprocesses the data with a prettifier.
- xcdiff - Terminal utility to find differences between two .xcodeproj project files.
Databases
Diff utilities to compare the schema or content of databases.
- Another PostgreSQL Diff Tool - Compares the schema of PostgreSQL dumps.
- migra - Compares the schema of PostgreSQL databases and generates migrations.
Diff utilities to compare the content of PDF files.
- diff-pdf - Generates a PDF file with visually highlighted differences based on the input PDFs.
- DiffPDF - Interactive GUI for comparing two PDF files.
Binary Data
Diff utilities to compare binary data.
- diffuse - Compares the content of APKs, AABs, AARs, and JARs.
- multidiff - Utility to diff multiple binary objects or streams of data.
- VBinDiff - Side by side comparison of binary data in hex and ascii format.
Folder Comparison
Diff utilities that can compare the content of whole directories.
- WinMerge - Supports code (with syntax highlighting), text, image and CSV files.
- Meld - Supports text based files, also integrates with version control systems.
Contributing
Contributing is greatly welcomed! Please read the Contribution Guidelines before taking any action.