Text Diff Checker
Compare two bounded text versions line by line and see additions, deletions, and unchanged lines without uploading either side.
Privacy: your files never leave your device. All processing happens locally in your browser.
How to use
- 1.Paste the original text on the left and changed text on the right.
- 2.Select Compare lines.
- 3.Review plus additions, minus deletions, unchanged rows, and the summary counts.
About Text Diff Checker
Text Diff Checker compares an original and changed plain-text version line by line. Paste both sides, run the comparison, and inspect a single ordered view where unchanged lines have a neutral prefix, additions begin with plus, and deletions begin with minus. A summary reports added, deleted, and unchanged line counts. Both texts remain in the browser and are never uploaded to Lizely.
The comparison unit is a complete line, not a character or word. Lines match only when their strings are exactly equal, including capitalization, punctuation, leading spaces, trailing spaces, tabs, and Unicode code points. A one-character edit therefore appears as one deleted line and one added line. This coarse view is intentional: it stays understandable for lists, configuration, logs, prose paragraphs, and small code excerpts.
CRLF, standalone CR, and LF are recognized as boundaries, with CRLF treated as one boundary. The comparison normalizes boundary syntax for analysis but retains the content inside each line. Completely empty input is zero lines. Empty lines inside a nonempty text are valid line values and participate in matching like any other line.
The algorithm computes a longest common subsequence of the two line arrays. Equal lines chosen for that subsequence appear as unchanged. Lines skipped from the original appear as deletions, and lines skipped from the changed side appear as additions. Duplicate lines can yield more than one valid optimal alignment; this implementation uses a deterministic tie rule that favors an addition when the remaining subsequence lengths are equal.
This is not a patch generator. It does not add line numbers, detect moved blocks, ignore whitespace, fold letter case, parse programming languages, highlight character-level edits, merge conflicts, or write either source. The output is an explanatory view rather than a unified-diff file suitable for automated application.
Each side is limited to 500 lines and 200,000 UTF-16 code units. Longest-common-subsequence comparison has quadratic work in line counts, so the explicit line cap prevents a pasted huge document from freezing the tab. Character limits also bound input storage and rendering. An over-limit side is rejected before the dynamic-programming table is built; nothing is silently truncated.
The table stores subsequence lengths for the remaining suffixes and then walks forward once to build rows. With 500 lines per side the matrix remains bounded. Generated rows preserve original line strings and their order within each source. Counts are derived from the final row types, ensuring the visible representation and summary use the same result.
Use Text Diff Checker to review a short configuration change, compare edited copy, inspect a list revision, or verify expected log lines. For a source repository, use Git because it tracks history, filenames, renames, patches, authorship, and conflict resolution. For very large files, use a streaming or native diff utility rather than pasting them into a browser.
A displayed equality means exact string equality under this tool's documented rules, not semantic equivalence. Different Unicode normalization forms, visually similar characters, line-ending conventions inside escaped strings, or hidden whitespace can produce changes. Inspect sensitive changes in the destination format and retain the original versions until review is complete.
Editing either side clears the previous comparison. The same accepted inputs always produce the same deterministic rows. The tool calls no third-party library or service and does not retain a history after the page is closed or refreshed.
Methodology & sources
Reject either side above 200,000 UTF-16 code units or 500 normalized CRLF/CR/LF lines, build a bounded dynamic-programming matrix of longest-common-subsequence lengths, walk forward using exact line equality and a deterministic addition-first tie rule, emit equal, add, or delete rows in source order, and derive summary counts from those rows.
Frequently asked questions
- Does it compare individual characters?
- No. Exact complete lines are the comparison unit; an edited line appears as one deletion and one addition.
- Are spaces and capitalization ignored?
- No. Line equality is exact, including case and every whitespace character inside the line.
- Why are there limits of 500 lines?
- The longest-common-subsequence algorithm has quadratic line-count work, so the cap keeps browser memory and latency bounded.
- Are my versions uploaded?
- No. Splitting, comparison, row generation, and rendering happen locally.
Related tools
- Find and Replace TextReplace the first or every literal text match with optional case sensitivity, without regular-expression surprises or uploads.
- Line CounterCount total, non-blank, and blank lines plus the longest line without uploading your text.
- Text File MergerCombine two to twenty local text files in selected order with an explicit newline, blank-line, or no-separator rule.
- Remove Duplicate LinesKeep the first occurrence of each line with optional case and edge-whitespace comparison, while preserving the retained text exactly.
- Add Line Numbers to TextNumber every line of pasted text from a chosen starting value with a custom separator and optional zero padding.
- Add Prefix and Suffix to LinesAdd literal prefix and suffix text to every pasted line, with an option to leave blank lines untouched.
Text Tools guides
View all- How to Check Text Messages From a Different Phone
- How to Check Text Difference in Notepad++ Without Compare
- How to Check Difference Between Two Text Files
- Compare Two Excel Lists for Duplicates Without Formulas
- Comma to Column Separator: Build Quote-Safe Output
- How to Count Characters in Word and Check Limits Live
- Capitalize Each Word: From Title Case to camelCase
- How to Get Bubble Text on Discord in 5 Steps
- Batch File Creator: Build a Numbered ZIP of Text Files
- How to Generate APA Citations: APA 7th Edition
- Clean AI Text for Free in Three Steps
- Bash Add Quotes to Each Line: Sed, Awk, and Xargs
- Add a Prefix to Each Line of Large Text in the Browser
- Add Line Numbers to Text in Bulk Without Uploading
- How to Wrap Text in MS Word at a Fixed Column Width
- How to Play a Scramble Word Game as the Host
- How to Generate a Word Cloud From Excel Data
- How to Remove Whitespace in Excel Cells the Safe Way
- Excel Hyperlink URLs: Formulas, Limits, and Local Cleanup
- Text To Slug Alternative With Explicit Character Rules