How to use this tool
- Paste the earlier passage into Original text and the later passage into Revised text.
- Choose whether differences in letter case or spaces at line edges should count as changes.
- Compare the result and read the prefix on each line: + means added, the minus sign means removed, and two spaces mean unchanged.
Understanding the output
The counts refer to lines in the chosen alignment, not changed words or characters. A replacement normally appears as a removed line followed by an added line. When case or edge spaces are ignored, a matched line shows its original spelling and spacing.
If line order is irrelevant and you need shared or missing entries, use List Compare to compare unique items instead of passage revisions.
Replacing the middle line
Original lines red, blue, green compared with revised lines red, yellow, green produce two unchanged lines, one removed line (blue), and one added line (yellow). The displayed lines are prefixed with two spaces, a minus, a plus, and two spaces respectively.
Line comparison keeps the surrounding context
Line boundaries matter here. Reflowing the same paragraph into different lines can create a large comparison even when its words barely change. For prose copied from a PDF, first decide whether the original wrapping should be preserved. A reordered line can appear as a removal and an addition; this tool does not identify a separate move operation.
Alignment favors nearby matching lines
Repeated lines make more than one alignment possible. The comparison searches ahead for the next match on each side and takes the nearer match, preferring a removal when distances tie. This keeps large inputs bounded, but it does not promise the shortest possible edit script. Use a version-control diff when you need a patch suitable for automated application.
Method and supported input
CRLF and CR line endings are normalized to LF. Each passage is limited to 100,000 UTF-16 code units. An empty passage has zero lines; a trailing newline creates a final empty line.
Matching uses exact strings after the selected edge-trimming and lowercase transformations. Indexed line positions support greedy look-ahead without constructing a quadratic line-by-line matrix.
- The inputs are plain text, and line order is meaningful.
- Ignore case uses JavaScript lowercase conversion rather than language-specific case folding.
Limitations
- The output is an annotated comparison, not a unified diff patch.
- There is no word-level highlight, move detection, or minimum-edit guarantee.
- Ignoring differences changes the matching criteria; it does not rewrite the pasted passages.
Common questions
Why does a blank final line appear?
A final line break is retained as an empty last line. Adding or removing that ending therefore appears in the comparison.
Will this compare formatting in Word or PDF files?
No. Paste their text first. Fonts, tracked changes, images, and document formatting are outside this comparison.
Can matching lines have different visible capitalization?
Yes, when Ignore letter case is selected. The unchanged output displays the original line, while the revised spelling remains in the input.