Сравнить два текста
Онлайн-diff текста, работающий полностью в браузере. Вставьте два текста (код, проза, JSON, что угодно) в левую и правую панели — тул подсветит изменения: красным зачёркнутым в оригинале, зелёным в изменённой. Выберите построчную, пословную или посимвольную гранулярность; переключайтесь между «рядом», unified (стиль GitHub) или встроенным видом. Diff вычисляется алгоритмом Myers — даже многомегабайтные входы работают мгновенно. Никаких загрузок — всё остаётся у вас.
Как пользоваться
Оригинал слева, изменённый справа.
«Рядом» для ревью, unified для шеринга, встроенно для прозы.
Красный — оригинал (удалено), зелёный + новое (добавлено), серый = без изменений.
Игнор пробелов, если форматирование шумное; игнор регистра, если он не важен.
Diff двух фрагментов текста или кода с гранулярностью строк, слов или символов — в браузере
Что можно делать
Типичные применения
- Увидеть, что изменилось между двумя версиями конфига перед деплоем.
- Рецензировать переписанный абзац с пословной гранулярностью.
- Сравнить два JSON-ответа и найти неожиданное различие в поле.
- Проверить copy-paste правку перед коммитом.
- Получить чистый unified diff для отправки в чат или код-ревью.
Почему именно этот
Большинство онлайн-diff останавливаются на построчном уровне — когда одно слово меняется внутри длинной строки, всё равно приходится глазами искать его по всей строке. Мы запускаем diff повторно внутри каждой изменённой строки, так что правки на уровне слов и символов подсвечены точно. Особенно полезно для прозы, юридических текстов и JSON, где важно одно значение, зарытое в длинном объекте.
Частые вопросы
Почему сравнение двух больших файлов тормозит?
Потому что поиск наименьшего набора изменений между двумя текстами стоит работы, растущей в худшем случае как произведение их длин, а не как сумма. Два файла, у которых большая часть содержимого общая, сравниваются быстро при любом размере: алгоритм сопоставляет длинные куски и пропускает их. Дорогой случай — два файла, у которых общего мало: переписанный документ, переформатированная кодовая база; отсюда и долгое ожидание. Помогают две вещи напрямую: переключить гранулярность с символов на строки, что уменьшает число сравниваемых элементов на порядок, и включить игнорирование пробелов, если различие, которое вам нужно, не в отступах.
Какой алгоритм diff?
То же семейство Myers longest-common-subsequence, что использует git, GNU diff и большинство инструментов код-ревью — так что вывод совпадает с тем, что ревьюеры видят в PR. Для гранулярности слов и символов внутри изменённых строк тот же алгоритм прогоняется заново на токенах этой строки.
Почему мой код diff выглядит странно с выключенным «Игнорировать пробелы»?
Табы vs пробелы, хвостовые пробелы и CRLF считаются реальными различиями, когда «Игнорировать пробелы» выключен. Включите опцию, если важно только содержимое.
Можно скопировать diff?
Unified-вид — простой текст, выделяйте и копируйте. Бок-о-бок вид — HTML; чистый экспорт через переключение на unified.
Мы можем! Просто отправьте нам сообщение с вашим пожеланием. Если хотите обсудить детали — оставьте свою почту, и мы с вами свяжемся. Можно анонимно.