All Projects → so-fancy → Diff So Fancy

so-fancy / Diff So Fancy

Licence: mit
Good-lookin' diffs. Actually… nah… The best-lookin' diffs. 🎉

Programming Languages

perl
6916 projects
shell
77523 projects

Projects that are alternatives of or similar to Diff So Fancy

fdiff
An OpenType table diff tool for fonts. Based on the fontTools TTX format.
Stars: ✭ 33 (-99.78%)
Mutual labels:  diffs, diff
knowledge-graph-change-language
Tools for working with KGCL
Stars: ✭ 14 (-99.91%)
Mutual labels:  diffs, diff
Expdevbadchars
Bad Characters highlighter for exploit development purposes supporting multiple input formats while comparing.
Stars: ✭ 167 (-98.87%)
Mutual labels:  diff
Elm Package
Command line tool to share Elm libraries
Stars: ✭ 214 (-98.55%)
Mutual labels:  diff
Htmlsimilarity
网页相似度判断:根据网页结构判断页面相似性 ,可用于相似度计算、越权检测等(Determine page similarity based on HTML page structure)
Stars: ✭ 189 (-98.72%)
Mutual labels:  diff
Docker Osm
A docker compose project to setup an OSM PostGIS database with automatic updates from OSM periodically
Stars: ✭ 172 (-98.84%)
Mutual labels:  diff
Swiftlcs
Swift implementation of the longest common subsequence (LCS) algorithm.
Stars: ✭ 207 (-98.6%)
Mutual labels:  diff
Emacs Vdiff
Like vimdiff for Emacs
Stars: ✭ 165 (-98.89%)
Mutual labels:  diff
Awesome Website Change Monitoring
A curated list of awesome tools for website diffing and change monitoring.
Stars: ✭ 224 (-98.49%)
Mutual labels:  diff
Split Diff
Side-by-side file compare for the Atom text editor.
Stars: ✭ 188 (-98.73%)
Mutual labels:  diff
Openapi Diff
Utility for comparing two OpenAPI specifications.
Stars: ✭ 208 (-98.6%)
Mutual labels:  diff
Diffobj
Compare R Objects with a Diff
Stars: ✭ 188 (-98.73%)
Mutual labels:  diff
Delta
Delta is a command-line diff tool implemented in Go.
Stars: ✭ 178 (-98.8%)
Mutual labels:  diff
Webdiff
Two-column web-based git difftool
Stars: ✭ 208 (-98.6%)
Mutual labels:  diff
Mirrordiffkit
Graduation from messy XCTAssertEqual messages.
Stars: ✭ 168 (-98.87%)
Mutual labels:  diff
Deck
decK: Configuration management and drift detection for Kong
Stars: ✭ 211 (-98.57%)
Mutual labels:  diff
Nytdiff
Code for the twitter bot nyt_diff
Stars: ✭ 166 (-98.88%)
Mutual labels:  diff
Dtl
diff template library written by C++
Stars: ✭ 180 (-98.78%)
Mutual labels:  diff
Difference.rs
Rust text diffing and assertion library
Stars: ✭ 206 (-98.61%)
Mutual labels:  diff
Listdiff
Swift port of IGListKit's IGListDiff
Stars: ✭ 225 (-98.48%)
Mutual labels:  diff

diff-so-fancy Circle CI build TravisCI build AppVeyor build

diff-so-fancy strives to make your diffs human readable instead of machine readable. This helps improve code quality and helps you spot defects faster.

Screenshot

Vanilla git diff vs git and diff-so-fancy

diff-highlight vs diff-so-fancy

Install

Installation is as simple as cloning this repo and then putting the diff-so-fancy script in to your $PATH. The lib/ directory will need to be kept relative to the core script.

diff-so-fancy is also available from the NPM registry, brew, and as a package on Nix, in the Arch community repo, and ppa:aos for Debian/Ubuntu Linux.

Issues relating to packaging ('installation does not work', 'version is out of date', etc.) should be directed to those packages' own repositories/issue trackers where applicable.

Note: Windows users may need to install MinGW or the Windows subsystem for Linux.

Usage

With git

Configure git to use diff-so-fancy for all diff output:

git config --global core.pager "diff-so-fancy | less --tabs=4 -RFX"
git config --global interactive.diffFilter "diff-so-fancy --patch"

Improved colors for the highlighted bits

The default Git colors are not optimal. The colors used for the screenshot above were:

git config --global color.ui true

git config --global color.diff-highlight.oldNormal    "red bold"
git config --global color.diff-highlight.oldHighlight "red bold 52"
git config --global color.diff-highlight.newNormal    "green bold"
git config --global color.diff-highlight.newHighlight "green bold 22"

git config --global color.diff.meta       "11"
git config --global color.diff.frag       "magenta bold"
git config --global color.diff.func       "146 bold"
git config --global color.diff.commit     "yellow bold"
git config --global color.diff.old        "red bold"
git config --global color.diff.new        "green bold"
git config --global color.diff.whitespace "red reverse"

With diff

Use -u with diff for unified output, and pipe the output to diff-so-fancy:

diff -u file_a file_b | diff-so-fancy

Options

markEmptyLines

Should the first block of an empty line be colored. (Default: true)

git config --bool --global diff-so-fancy.markEmptyLines false

changeHunkIndicators

Simplify git header chunks to a more human readable format. (Default: true)

git config --bool --global diff-so-fancy.changeHunkIndicators false

stripLeadingSymbols

Should the pesky + or - at line-start be removed. (Default: true)

git config --bool --global diff-so-fancy.stripLeadingSymbols false

useUnicodeRuler

By default, the separator for the file header uses Unicode line-drawing characters. If this is causing output errors on your terminal, set this to false to use ASCII characters instead. (Default: true)

git config --bool --global diff-so-fancy.useUnicodeRuler false

rulerWidth

By default, the separator for the file header spans the full width of the terminal. Use this setting to set the width of the file header manually.

git config --global diff-so-fancy.rulerWidth 47    # git log's commit header width

The diff-so-fancy team

Person Role
@scottchiefbaker Project lead
@OJFord Bug triage
@GenieTim Travis OSX fixes
@AOS Debian packager
@Stevemao/@Paul Irish NPM release team

Contributing

Pull requests are quite welcome, and should target the next branch. We are also looking for any feedback or ideas on how to make diff-so-fancy even fancier.

Other documentation

Alternatives

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].