Как пользоваться: Сравнение текстов
- Вставьте исходную версию в поле Исходный текст, а новую — в поле Изменённый текст (или откройте два файла).
- Различия вычисляются по мере ввода; для очень больших текстов нажмите Сравнить (или Ctrl+Enter).
- Переключайтесь между режимами Рядом и Построчно. Изменённые слова подсвечиваются внутри каждой изменённой строки.
- Отметьте Игнорировать пробелы или Игнорировать регистр, чтобы скрыть несущественные различия, и раскрывайте свёрнутые участки щелчком по ним.
- Нажмите Копировать diff, чтобы получить unified diff для вставки в код-ревью или применения через
git apply.
Что такое diff-checker?
Diff-checker сравнивает две версии текста и показывает, что именно изменилось: добавленные, удалённые и изменённые строки. Разработчики используют его, чтобы проверить изменения в конфигурации, сравнить ответы API или понять, что поменял форматтер; авторы и редакторы — чтобы сравнить черновики или редакции договоров. Это та же идея, что git diff или команда diff, только в наглядном виде в браузере.
Как работает сравнение
Сначала инструмент находит наибольшую общую подпоследовательность строк двух текстов с помощью алгоритма Myers diff (он лежит в основе diff в Git, реализован через библиотеку с открытым кодом jsdiff). Строки, которые есть в обоих текстах в одном порядке, считаются неизменёнными; всё остальное — добавление или удаление. Если удалённая и добавленная строки находятся на одном месте, они сопоставляются как изменение и сравниваются ещё раз по словам, поэтому вы видите, что изменилось только 8080 на 8443, а не две несвязанные красная и зелёная строки.
Одинаковые строки в начале и в конце пропускаются до сравнения, а содержимое строк хешируется, что делает сравнение нескольких тысяч строк быстрым. Всё выполняется локально — ничего не загружается на сервер.
Режим «рядом» и «построчно»
| Вид | Лучше всего подходит для |
|---|---|
| Рядом | Широких экранов и просмотра правок внутри строк; исходный текст слева, новый справа. |
| Построчно (unified) | Телефонов, узких окон и длинных строк. Удалённые строки (−) выводятся над добавленными (+), как в запросе на слияние GitHub. |
Параметры
- Игнорировать пробелы считает последовательности пробелов и табуляций одним пробелом и не учитывает пробелы в начале и конце строки — удобно, когда файл просто переформатировали.
- Игнорировать регистр считает «Error» и «error» одинаковыми.
- Свернуть без изменений скрывает длинные неизменённые участки, оставляя по три строки контекста вокруг каждого изменения. Щёлкните свёрнутую строку, чтобы раскрыть её.
- Копировать diff создаёт стандартный unified diff (заголовки
---/+++/@@), который понимают такие инструменты, какpatchиgit apply.
Советы
Сравниваете минифицированный код или JSON? Сначала отформатируйте обе версии — с помощью форматтера JSON, форматтера JavaScript или форматтера CSS, — тогда diff покажет реальные изменения, а не одну огромную строку. Чтобы убрать повторяющиеся строки из списка перед сравнением, используйте удаление дубликатов строк.
Также ищут как: diff, diff онлайн, unified diff.
Инструменты, которые хорошо сочетаются с Сравнение текстов
- Тестер регулярных выражений — Введите шаблон и смотрите, как совпадения подсвечиваются прямо в тестовом тексте.
- Счётчик слов — Вставьте или напишите текст, чтобы сразу увидеть количество слов и символов, а также время чтения и произнесения, плотность ключевых слов и проверку длины для SEO-заголовков, мета-описаний и постов в соцсетях.
- HTML форматер — Вставьте минифицированную или неаккуратную разметку и получите чистый HTML с единообразными отступами, включая встроенные блоки <style> и <script>.
- Минификатор CSS — Вставьте таблицу стилей, чтобы мгновенно уменьшить её размер.
Часто задаваемые вопросы
Мой текст загружается на сервер?
Какого размера могут быть тексты?
Что именно игнорирует «Игнорировать пробелы»?
Можно ли сравнить файлы Word или PDF?
Что такое unified diff?
- обозначает удалённые строки, + — добавленные, а заголовки @@ указывают номера строк. Именно так выводит результат git diff, и именно его применяют инструменты для патчей.