Elysia Tools

Browse tools, examples, visual explainers, and topic guides from one clear workspace.

Top Categories

Hubs

Language
ZHESPTRUFRDEEN

Elysia Tools

Navigation

Text Processing

Three-Way Text Comparison & Merge Suite

· Last updated:2026-08-07

Line/word/char diff with ignore rules, three-way merge with conflict markers, and unified patch

Details

What this tool helps you do

Compares two texts at line, word, or character granularity with optional case/whitespace ignoring, performs a three-way merge of two branches against a common ancestor (marking conflicts Git-style), and emits a unified patch. Based on jsdiff (LCS). Pure local — no AI, no network.

Execution

Run this tool

Fill in the form, run the tool, and review the result in one place.

Samples

Examples that match this tool

Related

Continue with connected tools and hubs

Written by the Elysia Tools team

Tool usage guide

Learn when to use this tool, what it supports, and how real users apply it.

Key facts

Category
Text Processing
Input types
textarea, select, checkbox, number
Output type
html
Sample coverage
4
API ready
Yes

Overview

Compare two text blocks by line, word, or character, merge two branches against a shared ancestor, or generate a unified patch. You can optionally ignore letter case and whitespace, and three-way conflicts are marked in Git style.

When to use

  • Review additions, removals, and changes between two versions of a text.
  • Combine two edited branches while checking for changes made in the same area.
  • Create a unified patch showing how to change Branch A into Branch B.

How it works

  1. 1Enter Branch A and Branch B in the two required text areas.
  2. 2For a three-way merge, also enter the common ancestor in the Base / ancestor field.
  3. 3Choose Two-way diff, Three-way merge, or Patch, then select line, word, or character granularity.
  4. 4Optionally ignore case or whitespace and set the number of context lines for patch output.

Use cases

  • Compare revised documentation, configuration text, or source code at the level that best exposes the change.
  • Merge independent edits from two branches using a common ancestor and identify overlapping changes.
  • Prepare a compact unified patch for reviewing or communicating text changes.

Examples

1. Combine independent branch edits

Developer

Background

A developer has a shared four-line base text. Branch A changes the second line, while Branch B changes the fourth line.

Problem

Merge both edits without treating changes in separate areas as conflicts.

How to use

Enter the shared text as Base / ancestor, place each branch in its respective field, and select Three-way merge with line granularity.

mode: threeway; granularity: line; ignoreCase: false; ignoreWs: false

Outcome

The two non-overlapping changes are combined into one result with zero conflicts.

2. Review a line-level text revision

Technical writer

Background

A document version contains the lines "alpha", "beta", and "gamma". The revised version changes "beta" to "BETA" and adds "delta".

Problem

Identify the replacement and newly added line quickly.

How to use

Enter the original text as Branch A and the revised text as Branch B, then select Two-way diff with line granularity.

FAQ

What inputs are required?

Branch A and Branch B are required. A Base / ancestor text is needed for three-way merge mode.

What comparison levels are supported?

You can compare text by lines, words, or characters.

Can the comparison ignore case or whitespace?

Yes. Enable Ignore case or Ignore whitespace before running the comparison.

How are three-way conflicts shown?

Conflicts are marked with Git-style conflict markers so you can review both branch changes.

What does Patch mode produce?

Patch mode produces a unified patch describing the changes from Branch A to Branch B.

Home
Tools3201
Samples593
Visualizations465
Viewers103
Hubs233
Tags333
Images, Audio & Video657

Image, audio, and video processing, conversion, and optimization tools

Math, Date & Finance644

Calculators, numerics, date logic, statistics, and finance tools

Design & Color297

Color, layout, graphics, visual styling, and design helper tools

Text & Writing209

Writing, cleanup, formatting, extraction, and text analysis tools

Developer & Web193

Developer utilities, networking, web debugging, and automation helpers

Conversion & Encoding175

Format, file, archive, unit, and encoding conversion tools

FLAC/WAV Source Screening and Evidence Handoff
Self-Hosted Giveaway Widget Review and Embed Handoff
Stripe Promo Code Batch Review and Import Preflight
Batch Photo Culling Review and Editing Shortlist Handoff
UI Screenshot Structure Review and Development Handoff

© 2026 Elysia Tools. All rights reserved.

DocsPricingAboutTerms of ServicePrivacy PolicyCookiesContact
Text Processing

Text with Emoji Samples

Mixed language text containing various Unicode emojis for testing emoji extraction

Blockchain

Truffle Development Suite Samples

Truffle Ethereum development framework examples including smart contracts, testing, deployment, migrations, debugging, and development workflows

Text Processing

Chinese-English Mixed Text Samples

Sample text files with mixed Chinese and English content for testing automatic spacing tools

text-processing

Text Case Format Samples

Examples of different text case formats: camelCase, snake_case, kebab-case, PascalCase, and more

Text Processing

Advanced Duplicate Line Remover

Detect and remove duplicate lines with advanced options for mode, case sensitivity, and trimming

Text Processing

Remove Duplicate Lines

Deduplicate lines in a list or text block. Keep the first or last occurrence, with options for case sensitivity, whitespace trimming, and dropping empty lines.

Text Processing

Text Repeater

Repeat text N times with a chosen separator — inline, new line, or a numbered countdown. The quick tool for chat spam, dramatic build-ups, and social-media effect.

Text Processing

Whitespace Normalizer

Replace consecutive spaces/tabs with single space and trim line start/end whitespace

mode: twoway; granularity: line; ignoreCase: false; ignoreWs: false

Outcome

The HTML result shows the changed line and the added line in the A-versus-B diff.