Pack Camo

Сравнение текстов: найти отличия

Compare two texts and see every added, removed and changed line. Всё выполняется локально — ничего не отправляется на сервер.

Вход
Two texts or files
Выход
Side-by-side · inline · unified diff

Исходный

9 строк

Изменённый

9 строк

Отличия

+0 добавлено · −0 удалено · ~4 изменено

1Сравнение текстов Pack Camo1Сравнение текстов Pack Camo223Вставьте исходный текст с этой стороны.3Вставьте исходный текст с этой стороны.4Изменённая версия идёт справа.4Отредактированная версия идёт справа.5Совпадающие строки сворачиваются.5Совпадающие строки сворачиваются.667Timeout: 30 seconds7Timeout: 45 seconds8Retries: 38Mode: strict9Mode: strict9Log level: debug

Сравните тексты и увидьте, что именно изменилось

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

Как сравнить два текста

  1. Вставьте исходный текст в левое поле, а изменённый — в правое или перетащите текстовый файл на любое из полей.
  2. Смотрите результат ниже: удалённые строки красные, добавленные зелёные, а изменённые слова внутри строки подсвечены.
  3. Переключайтесь между видами бок о бок и единым и игнорируйте пробелы, регистр букв или пустые строки, если они не важны.
  4. Переходите от одного изменения к следующему стрелками.
  5. Скопируйте или скачайте отличия в виде стандартного файла .patch, чтобы применить его через git apply или patch.

Как работает сравнение

Тексты сравниваются построчно алгоритмом Майерса — тем же, что лежит в основе git diff и GNU diff. Он находит самый короткий список вставок и удалений, превращающий один текст в другой, что равносильно поиску самой длинной общей последовательности строк. Отредактированные строки выглядят как удаление, за которым следует добавление; инструмент объединяет их в пары и внутри каждой пары выполняет второе, более точное сравнение — по словам или по символам, — чтобы подсветить только изменившуюся часть.

Неизменённые участки сворачиваются, а вокруг каждого изменения остаются три строки контекста, как в код-ревью. Щёлкните по свёрнутому участку, чтобы раскрыть его, или отключите сворачивание, чтобы видеть оба текста целиком. Очень большие или почти полностью разные тексты всё равно сравниваются быстро: после определённого объёма работы инструмент показывает оставшуюся область одним блоком изменений, а не ищет минимально возможный diff, и сообщает об этом над результатом.

Игнорирование пробелов, регистра и пустых строк

Игнорировать пробелы
Строки, отличающиеся только пробелами, табуляцией или отступами, считаются одинаковыми, как в git diff -w. Полезно после переформатирования кода или изменения переносов в тексте.
Игнорировать регистр
Заглавные и строчные буквы считаются одинаковыми, поэтому заголовок, переписанный из Title Case в Sentence case, не отмечается.
Игнорировать пустые строки
Изменения, которые только добавляют или удаляют пустые строки, показываются серым и не попадают в счётчики и патч.
Слова или символы
Выберите, насколько подробно подсвечивать изменённые строки: целые слова удобны для обычного текста, отдельные символы — для кода, идентификаторов и чисел.

Вид бок о бок или единый

Вид бок о бок показывает исходный и изменённый текст в двух колонках с собственной нумерацией строк, выровненных так, что изменённая строка стоит рядом со своей новой версией. Это самый удобный вид для обычного текста и длинных строк. Единый вид показывает одну колонку, где удалённые строки помечены -, а добавленные +, ровно так, как их показывают файл патча или pull request; он лучше подходит для узкого экрана.

Счётчики над результатом показывают добавленные, удалённые и изменённые строки. Изменённая строка отредактирована на месте; у удалённой строки нет соответствия в новом тексте.

Номера строк с обеих сторон относятся к текстам ровно в том виде, в каком вы их вставили, так что любое изменение легко найти в своём редакторе. Стрелки над результатом проходят по изменениям по порядку и центрируют каждое; счётчик показывает, на каком изменении вы находитесь.

Файлы патчей и другие форматы

Скачивается unified diff: заголовки --- и +++ с именами двух файлов, затем блоки @@ с тремя строками контекста — формат, который читают git apply, patch -p1 и любые инструменты код-ревью. Отсутствующий перевод строки в конце файла отмечается стандартным способом, так что применение патча к исходному тексту в точности воспроизводит изменённый.

Для JSON построчное сравнение часто не подходит: переставленные ключи или файл с другими отступами выглядят как сплошные изменения. Инструмент JSON diff сравнивает структуру и игнорирует порядок ключей и форматирование. Чтобы посчитать слова в любой из версий, используйте счётчик слов.

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

Как сравнить два текста и найти отличия?
Вставьте исходный текст в левое поле, а новую версию — в правое. Отличия сразу появятся ниже: удалённые строки красным, добавленные зелёным, изменённые слова подсвечены.
Можно ли сравнить два файла?
Да. Перетащите текстовый файл на каждое поле или вставьте их содержимое. Подходит любой текстовый файл, включая код, CSV, Markdown, логи и конфигурационные файлы.
Как не учитывать различия в пробелах?
Включите «Игнорировать пробелы». Тогда строки, отличающиеся только пробелами, табуляцией или отступами, считаются одинаковыми, как в git diff -w.
Что такое unified diff?
Unified diff перечисляет изменения блоками, начинающимися с @@: удалённые строки помечены минусом, добавленные плюсом, а вокруг остаётся несколько неизменённых строк контекста. Этот формат используют git и команда patch.
Как создать файл патча из двух текстов?
Сравните тексты и нажмите кнопку скачивания, чтобы сохранить файл .patch в формате unified. Примените его к исходнику через git apply или patch -p1.
Есть ли ограничение по размеру?
Фиксированного ограничения нет. Файлы в десятки тысяч строк сравниваются за доли секунды. Для очень больших или совершенно разных текстов подсветка слов отключается, а изменения могут объединяться в более крупные блоки ради скорости.
Загружается ли сравниваемый текст куда-либо?
Нет. Сравнение выполняется в вашем браузере, на сервер ничего не отправляется, поэтому можно спокойно сравнивать личные документы и код.