Сравнение текстов (Diff Checker)
Сравнивайте два текста или фрагмента кода построчно. Добавленные, удалённые и изменённые строки подсвечиваются вплоть до конкретных отличающихся слов.
Работает в браузереБез регистрацииНичего не загружается
Как пользоваться: Сравнение текстов (Diff)
- Вставьте исходный текст слева, а изменённый справа или откройте два файла.
- Сравнение обновляется по мере ввода. Выберите вид Бок о бок или Единый.
- Отметьте Игнорировать пробелы, Игнорировать регистр или Игнорировать пустые строки, чтобы скрыть шум вроде смены отступов.
- Используйте Скрыть неизменённое, чтобы сосредоточиться на изменениях с тремя строками контекста вокруг каждого.
- Нажмите Копировать как патч или Скачать .diff, чтобы получить стандартный unified diff, который применяется через
git applyилиpatch.
Как работает сравнение
Инструмент разбивает оба текста на строки и запускает алгоритм Майерса — тот же алгоритм O(ND), что используют git diff и GNU diff. Он находит кратчайшую последовательность вставок и удалений, превращающую исходный текст в изменённый, поэтому результат показывает минимально возможное число изменённых строк. Одинаковые строки в начале и конце пропускаются заранее, так что даже файлы на тысячи строк сравниваются почти мгновенно.
Когда удалённая и добавленная строки стоят рядом, они объединяются в изменённую строку и сравниваются ещё раз пословно. Реально изменившиеся слова подсвечиваются ярче, поэтому переименованная переменная или исправленное число сразу заметны даже в длинной строке.
Бок о бок или единый вид
Вид Бок о бок показывает исходник слева и новую версию справа с номерами строк для обеих. Это самый удобный вид для проверки текстов, конфигов и небольших правок кода. Единый вид чередует удалённые (-) и добавленные (+) строки в одной колонке — этот формат используют инструменты код-ревью и патч-файлы.
Формат unified diff (патч)
Экспортируемый патч соответствует формату diff -u: заголовок ---/+++, затем блоки (hunks), начинающиеся с @@ -l,s +l,s @@, где l — номер первой строки, а s — число строк блока в каждом файле. Каждый блок содержит три строки неизменённого контекста, поэтому его можно применить через patch -p0 или git apply, даже если соседние строки сместились.
Когда использовать опции игнорирования
- Игнорировать пробелы считает строки равными, если они отличаются только пробелами или табуляцией. Полезно после смены отступов или замены табов на пробелы.
- Игнорировать регистр удобно для SQL, HTML и логов, где регистр не важен.
- Игнорировать пустые строки скрывает строки, добавленные или удалённые только ради отступов.