Об этом инструменте
Инструмент сравнения diff сравнивает две версии текста и сообщает, какие именно строки были добавлены, удалены или оставлены без изменений. Этот инструмент выполняет построчное сравнение по алгоритму Майерса O(ND) — тот же жадный алгоритм наибольшей общей подпоследовательности, что лежит в основе `git diff`, — чтобы найти кратчайший сценарий редактирования между вашим исходным и изменённым вводом, а затем отображает его в виде объединённого представления: удалённые строки на красном фоне со знаком «-» в желобе, добавленные строки на зелёном со знаком «+» и неизменённые строки обычным образом. Для строк, которые были отредактированы, а не полностью заменены, он вычисляет второе сравнение на уровне символов и подсвечивает только те фрагменты, которые действительно изменились с каждой стороны.
Используйте его, чтобы проверить изменение кода перед коммитом, заметить различие между двумя файлами конфигурации или ответами API, подтвердить, что именно затронула замена «найти и заменить», или проверить правки в текстах и документации. Включите «Ignore case», чтобы рассматривать изменения регистра как равнозначные, или «Ignore trailing whitespace», чтобы игнорировать шум в конце строк, и сравнение перезапускается в реальном времени по мере ввода.
Всё выполняется в вашем браузере — ни один из двух блоков текста никогда не загружается, поэтому безопасно вставлять исходный код, конфигурацию или другое конфиденциальное содержимое.
Часто задаваемые вопросы
Какой алгоритм использует инструмент сравнения diff для сравнения текста?
Большинство построчных сравнений, включая это, используют алгоритм Майерса O(ND), который находит кратчайший сценарий редактирования (наименьшее число вставок и удалений строк), проходя по графу редактирования вдоль его диагоналей. Это тот же подход, который Git использует по умолчанию.
В чём разница между построчным и посимвольным сравнением?
Построчное сравнение сообщает о целых строках как о добавленных, удалённых или неизменённых, тогда как посимвольное сравнение подсвечивает точные символы, которые изменились внутри строки. Этот инструмент делает и то, и другое: сначала он сравнивает построчно, а затем выполняет посимвольное сравнение для сопоставленных изменённых строк, чтобы показать подсветку внутри строк.
Изменяет ли игнорирование регистра или конечных пробелов отображаемый текст?
Нет. Эти параметры влияют только на то, как строки сравниваются на равенство, поэтому две строки, различающиеся лишь регистром или конечными пробелами, считаются совпадающими. Исходный текст, включая его точный регистр и пробелы, всегда отображается в сравнении без изменений.