Сравнение текстов (diff)
Сравнивайте два текста построчно и смотрите добавления и удаления
Об этом инструменте
Вставьте исходный текст слева и изменённую версию справа — и получите единое построчное сравнение: удаления отмечены красным, добавления зелёным, контекст сохранён между ними, с исходными номерами строк с обеих сторон. Это самый быстрый способ ответить на вопрос «что на самом деле изменилось?» между двумя конфигами, двумя ответами API или двумя версиями фрагмента, который кто-то прислал в чат.
Сравнение использует алгоритм наибольшей общей подпоследовательности по строкам — то же семейство алгоритмов, что стоит за git diff, — поэтому переставленные блоки и мелкие правки дают читаемый результат, а не помечают всё как изменённое. Итоговая строка суммирует добавленные и удалённые строки.
Поскольку оба текста остаются на странице, сравнение конфиденциальных материалов — договоров, учётных данных в конфигах, неопубликованных текстов — не несёт рисков вставки их в случайный веб-сервис.
Частые вопросы
- Сравнение работает по словам или по строкам?
- По строкам. Каждая строка сравнивается как единое целое, что соответствует тому, как разработчики читают диффы кода и конфигов. Поэтому изменённая строка отображается как одно удаление плюс одно добавление; посимвольная подсветка внутри строки — в планах.
- Почему дифф показывает всё как изменённое?
- Обычно из-за невидимых различий: одна сторона использует табы, другая пробелы, окончания строк CRLF из Windows против LF из Unix, или пробелы в конце строк. Нормализация пробелов перед сравнением (для JSON-данных помогает JSON-форматтер с сортировкой ключей) делает настоящие изменения видимыми.
- Можно ли осмысленно сравнить два JSON-ответа?
- Да — сначала пропустите оба через JSON-форматтер с включённой сортировкой ключей, чтобы эквивалентные документы сериализовались одинаково. Тогда дифф покажет реальные изменения значений, а не шум от порядка ключей.
- Есть ли максимальный размер текста?
- Алгоритм сравнивает каждую строку одного текста с каждой строкой другого, поэтому очень большие файлы (десятки тысяч строк с обеих сторон) могут занять некоторое время. Типичные файлы кода и ответы API сравниваются мгновенно.