Reading the result
Press Load sample. Both boxes fill with two drafts of a remote work policy. The result shows five change blocks. Each row type means one thing:
Item 2 reads the same on both sides yet sits in a red and green row. A dot marks the spot: draft 3 has a trailing space after the full stop. Tick Ignore spacing and the row turns plain. The counters above the result tell the same story in numbers: 1 added, 1 removed, 6 reworded, 4 unchanged.
Inline view stacks each removed line above its replacement, the way a code review shows a patch. Phones open in Inline view because two columns of text get cramped below 640 pixels.
One new line at the top should not flag the whole file
A naive checker compares line 1 with line 1, line 2 with line 2, and so on. Add a heading to a 200-line file and every line below shifts down by one, so all 200 rows come back as changed. This page worked the same way until the October 2026 rebuild.
The checker now runs the Myers diff algorithm, the method behind git diff and GNU diff. The algorithm finds the longest sequence of lines both versions share in order, then reports only the lines outside the sequence. In the 200-line test, the result is 1 added line and 200 unchanged ones.
Reworded lines get a second pass. When a removed line and an inserted line share at least 40% of their words, the pair goes on one row with a word-level diff. Below 40%, the two count as one removal plus one addition, since marking every word of an unrelated line tells you nothing.
Which ignore option to tick
| What you see | Tick | What gets ignored |
|---|---|---|
| A row is marked, but both sides read the same | Ignore spacing | Trailing spaces, tabs versus spaces, double spaces, non-breaking spaces copied from a web page |
| SQL, HTML tags or config keys differ only in capitals | Ignore case | SELECT versus select, TRUE versus true |
| Text exported from Word or a PDF has empty lines between paragraphs | Ignore blank lines | Empty lines, plus lines holding only whitespace, on both sides |
Ignore options change the matching, never the display. A line matched under Ignore case still shows each side's own capitals. Line numbers keep pointing at the real lines in your text, blank ones included.
Sending the changes to someone else
Copy diff puts a unified diff on your clipboard. Download .diff saves the same text as changes.diff. For the sample, the export reads:
--- policy-draft-2.txt
+++ policy-draft-3.txt
@@ -1,11 +1,11 @@
-Remote Work Policy, draft 2
+Remote Work Policy, draft 3
Owner: Priya Nair
-Last reviewed: March 2026
+Reviewer: Tomasz Kowalski
+Last reviewed: May 2026
-1. Staff work remotely up to three days per week.
-2. Core hours run from 10:00 to 15:00 in your local time zone.
-3. Requests go to your line manager at least one week ahead.
+1. Staff work remotely up to four days per week.
+2. Core hours run from 10:00 to 15:00 in your local time zone.
+3. Requests go to your line manager at least two weeks ahead.
4. Equipment stays the property of the company.
-5. Home internet claims are capped at 30 per month.
-Questions go to hr@toolexe.com.
+Questions go to people@toolexe.com.
Lines starting with a minus come from the original. Lines starting with a plus come from the changed version. The header names the files you opened, or original.txt and changed.txt for pasted text. Each @@ line gives the line range on both sides.
With every ignore option off, patch original.txt changes.diff turns the original into the changed version. We ran the sample export through GNU patch and the output matched draft 3 byte for byte. With an ignore option on, the export leaves out the ignored differences and stops being a valid patch, so treat the file as a reading copy.
Where this checker falls short
- Moved paragraphs show up twice. Swap sections 2 and 4 of a report and you get a red block in one place and a green block in another. Nothing links the two, so read both before deciding text was cut.
- Formatting does not survive the paste. Bold, fonts, comments and tracked changes in a .docx are lost once you copy the text out. For formatting edits, Word's own Review, Compare command is the better tool.
- Long paragraphs on one line. The diff works line by line. A 600-word paragraph stored as a single line turns into one tall reworded row. The marks still pinpoint the words, yet the row is slow to scan. Put each sentence on its own line before comparing.
- Size ceilings. Each box takes up to 5 MB of text. When more than 2,000 lines differ, the checker stops and says so, because two texts so far apart share too little for an alignment to mean anything. In our tests a 50,000-line log with 300 edits compared in under a tenth of a second.
- Final line break. One trailing line break is dropped from each side before matching, so a file saved with a final newline matches one saved without.
git diffreports this as "No newline at end of file". This page stays silent. - Structured data. Two JSON files with identical keys in a different order look mostly rewritten here. JSON Compare and XML Diff compare by structure instead.