Skip to content

Awesome tools that show differences between files and folders.

License

Notifications You must be signed in to change notification settings

mmueller2012/awesome-diff-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

Awesome Diff Tools Awesome

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

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.

PDF

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.