Crates.io | difftastic-oc |
lib.rs | difftastic-oc |
version | 0.23.0 |
source | src |
created_at | 2022-09-15 08:45:37.288773 |
updated_at | 2022-09-15 08:45:37.288773 |
description | A syntactic diff |
homepage | http://difftastic.wilfred.me.uk/ |
repository | https://github.com/wilfred/difftastic |
max_upload_size | |
id | 666536 |
size | 143,662,576 |
Difftastic is an experimental diff tool that compares files based on their syntax.
See the manual to get started.
Difftastic understands expression nesting. If you wrap an expression in an if statement, difftastic understands that the inner values are unchanged.
Compare this with git's default diff. It is confused by indentation changes, and doesn't know which closing parenthesis has been added.
Difftastic is robust to code formatting changes. If you change how many items appear on a single line, difftastic will only show you items which have changed.
In git's default diff, it's harder to see that iter
and the curly
braces are unchanged. It's also harder to see the affected line numbers.
Difftastic supports the following languages:
If a file has an unrecognised extension, difftastic uses a line-oriented diff.
Performance. Difftastic scales relatively poorly on files with a large number of changes, and can use a lot of memory.
Display. Difftastic has a side-by-side display which usually works well, but can be confusing.
Robustness. Difftastic regularly has releases that fix crashes.
Patch files. If you want to create a patch that you can later apply,
use diff
. Difftastic ignores whitespace, so its output is
lossy. (AST patching is also a hard problem.)
Difftastic is open source under the MIT license, see LICENSE for more details.
Files in sample_files/
are also under the MIT license unless stated
otherwise in their header.