CodeKitHub
Русский
Текстовые инструменты

Text Diff — сравнение двух текстов онлайн

Вставьте две версии текста и посмотрите, что именно изменилось: добавленные строки выделены зеленым, удаленные — красным, а неизменные строки отображаются в контексте — точно так же, как различия отображаются в Git и инструментах для ревью кода. Всё происходит прямо в браузере.

Что это за инструмент?

Инструмент сравнения (diff) сравнивает два текста и показывает минимальный набор изменений, необходимый для преобразования одного текста в другой. Именно таким образом системы управления версиями, такие как Git, отображают изменения в коде, и этот инструмент одинаково полезен для сравнения конфигурационных файлов, договоров, статей или любых двух версий чего угодно.

Этот инструмент сравнивает строки построчно, используя тот же семейство алгоритмов (наиболее длинная общая подпоследовательность), что и классические утилиты для сравнения кода, поэтому вывод выглядит как привычный отчет по рецензированию кода: «+» для добавленных строк, «−» для удаленных.

Зачем его использовать?

  • Посмотрите, что именно изменилось между двумя версиями, вместо того чтобы просто сравнивать их на глаз.
  • Привычный вывод в стиле Git: добавленные строки выделены зеленым, удаленные — красным, а между ними — контекстные строки.
  • Краткий обзор количества добавленных и удаленных строк.
  • Подходит для любого текста — кода, конфигураций, документов, списков.
  • В частном режиме: оба текста остаются в вашем браузере, ничего не загружается.

Как использовать

  1. Вставьте исходный текст в поле слева.
  2. Вставьте отредактированную версию в правое поле.
  3. Нажмите «Сравнить».
  4. Посмотрите на результат: зеленые линии были добавлены, красные — удалены, а обычные линии остались без изменений.

Пример

Ввод

Original:
line one
line two
line three

Changed:
line one
line 2
line three

Результат

  line one
− line two
+ line 2
  line three

Была изменена средняя строка, что в файле diff отображается как удаление старой строки и добавление новой.

Типичные сценарии использования

  • Проверка абзаца, переписанного ИИ: вставьте исходный текст и версию, подготовленную ИИ, чтобы точно увидеть, какие именно предложения были изменены, вместо того чтобы перечитывать весь текст заново в поисках правок.
  • Сравнение двух проектов договора: юридические поправки часто проще просматривать в виде сравнения строк, чем в виде отслеженных изменений, если при переходе от одной версии к другой формат документа был изменен.
  • Проверка файла конфигурации после развертывания: вставьте текст файла .env или YAML до и после развертывания, чтобы убедиться, что изменились только те строки, которые и должны были измениться.
  • Сравнение изменений в переведенном тексте: посмотрите, какие строки переводчик или редактор действительно изменили при переходе от одного черновика к другому.

Ограничения, о которых следует знать

Это сравнение на уровне строк, а не на уровне слов — если вы переместите абзац из верхней части документа в нижнюю, не изменив его текст, это отобразится как полное удаление плюс полное добавление, а не как пометка «перемещено». Для прозы с большим количеством абзацев, где в каждом предложении меняется лишь несколько слов, инструмент сравнения на уровне слов выделил бы меньше текста, но сравнение на уровне строк является стандартом для кода, конфигурационных файлов и структурированных документов, и именно на этом сосредоточен данный инструмент.

Как работает алгоритм сравнения

Инструмент находит самую длинную общую подпоследовательность (LCS) между двумя текстами — наибольшее множество строк, которые встречаются в одинаковом относительном порядке в обеих версиях, даже если между ними были вставлены или удалены другие строки. Всё, что входит в эту общую подпоследовательность, отображается как неизменённый контекст; всё остальное классифицируется либо как удалённое (присутствующее только в исходном тексте), либо как добавленное (присутствующее только в новой версии). Это тот же базовый алгоритм, что лежит в основе утилиты Unix `diff` и построчного сравнения в Git, поэтому формат вывода сразу покажется вам знакомым, если вы когда-либо просматривали пул-реквест.

Одно из практических следствий: если строка дублируется в другом месте документа (точно такой же текст встречается дважды), алгоритм сопоставляет её с тем вхождением, при котором общий разрыв в результатах сравнения будет минимальным — что иногда приводит к сопоставлению, немного отличающемуся от того, чего можно было бы интуитивно ожидать, хотя окончательное количество добавленных/удалённых строк всегда будет точным, независимо от того, какое из дубликатов с каким было сопоставлено.

Часто задаваемые вопросы

Сравнение происходит слово за словом или строка за строкой?

Строка за строкой, как в git diff. Измененная строка отображается как одно удаление и одно добавление. Сравнение на уровне строк является стандартом для кода и конфигурационных файлов и остается понятным даже при работе с большими текстами.

Почему даже незначительное изменение приводит к тому, что вся строка отображается как измененная?

Поскольку единицей сравнения является строка, любое изменение в ней затрагивает всю строку. Если вам требуется более точная детализация, разбивайте длинные абзацы на более короткие строки.

Имеют ли значение пробелы?

Да. Строки должны совпадать в точности, поэтому пробел в конце строки или разный уровень отступа приводят к тому, что строки считаются разными. Это сделано намеренно — различия в пробелах являются реальными различиями в коде и конфигурационных файлах.

Есть ли ограничения по размеру?

Жестких ограничений нет, но обработка очень больших текстов (десятки тысяч строк) может занять некоторое время, поскольку сравнение выполняется локально на вашем устройстве.

Мои тексты загружены для сравнения?

Нет. Алгоритм сравнения работает полностью в вашем браузере с помощью JavaScript. Оба текста остаются на вашем устройстве — это безопасно для контрактов, внутренней документации и еще не выпущенного кода.

Похожие инструменты