What a line diff tells you
Two versions of a text always raise the same question — what
actually changed? — and reading both in full to answer it is the
slowest possible method. A diff answers it mechanically: align
the two texts by the lines they share, and whatever is left over
is the change. Lines that only exist in the original are
removals; lines that only exist in the new version are additions;
everything else is context that stayed put. That is the whole
model — the same one behind git diff, code review
tools and Wikipedia's history view — reduced here to two paste
boxes and one button, for the config file, contract clause or
config snippet you need compared once, not committed anywhere.
How to use this tool
- Paste the earlier version on the left and the newer version on the right. Order matters: the left is "before", so lines only on the left read as removals.
- Press Compare. The result lists every line of both texts in aligned order, with the changes marked.
- Read the marks, not just the colours: a + in a blue-tinted row is an added line, a − in a grey row is a removed line, and unmarked rows are unchanged context. The summary above the result counts each kind.
- An edited line appears as a removal immediately followed by its replacement as an addition — that pairing is how a line diff says "this line changed".
- Swap sides flips the comparison when you realise the versions are in the wrong order; additions and removals trade places, as they should.
Why signs and words, not just colours
The classic diff palette — red for deletions, green for additions — encodes the entire meaning of the output in the one channel about 8% of men and 0.5% of women cannot reliably distinguish. This page treats colour as decoration and puts the meaning elsewhere: the + and − signs in the gutter, the words Added and Removed in the legend, the line numbers from each side (a removed line has a left number and no right number; an added line the reverse), and two background shades — a blue tint for additions, a neutral grey for removals — chosen to differ in lightness, so the output survives being printed in greyscale. It is a small design decision with a large property: nobody has to guess what a row means.
Reading a diff well
Start with the shape, not the details. A healthy edit is a few tight clusters of change in a sea of unchanged lines; long runs of pure removals followed by pure additions usually mean a block was moved or re-wrapped rather than rewritten, and a diff where every line changed almost always means the invisible things changed — line endings, indentation character, encoding — rather than the words. This checker normalises line endings for exactly that reason, but it will not hide a tabs-to-spaces conversion, because sometimes that conversion is the change you are hunting. Finally, remember what a diff cannot say: it shows that line 12 changed, never whether the change is right. The alignment is mechanical; the judgement stays yours.