Сравнение текста

Инструмент сравнивает два текста или фрагмента кода: показывает добавленные, удалённые и изменённые строки, а внутри изменённых строк выделяет отличающиеся слова. Различия можно смотреть построчно или в две колонки и скачать в виде патча. Пригодится, чтобы найти правку в двух версиях стилей или разметки, сверить своё решение с образцом или проверить, что изменилось в конфигурации.

Как пользоваться

Вставьте старую версию в поле «Было», новую — в «Стало», или откройте файлы. Различия обновляются сами во время ввода; кнопка со стрелками меняет стороны местами.

Удалённые строки отмечены знаком «−», добавленные — «+». Внутри изменённой строки удалённые слова зачёркнуты, добавленные — подчёркнуты. Неизменённые участки вдали от правок свёрнуты: видно только число пропущенных строк.

Тексты обрабатываются в браузере и не отправляются на сервер. Размер каждого — до 2 МБ.

Для вашего удобства рекомендую использовать полноэкранный режим.

Сравниваем…

Было

Файл не выбран
UTF-8, до 2 МБ. Файл можно перетащить на поле. Файл обрабатывается только в вашем браузере.
.card {
  padding: 16px;
  color: #333;
  border: 1px solid #ccc;
}

.title {
  font-size: 20px;
}

Стало

Файл не выбран
UTF-8, до 2 МБ. Файл можно перетащить на поле. Файл обрабатывается только в вашем браузере.
.card {
  padding: 16px 24px;
  color: #333;
  border-radius: 8px;
}

.title {
  font-size: 20px;
  font-weight: 600;
}

Различия

Для сравнения включите JavaScript. Инструмент показывает добавленные, удалённые и изменённые строки двух текстов, а внутри изменённых строк — отличающиеся слова.

Настройки сравнения

  • Не учитывать пробелы по краям строк — изменение отступов не считается различием. Удобно, если код переформатировали или вложили в другой блок. Пробелы внутри строки по-прежнему учитываются.
  • Не учитывать регистр — Color и color считаются одинаковыми.
  • Переводы строк Windows (CRLF) и Unix (LF) различием не считаются — инструмент лишь сообщает, что они отличаются.

Патч в формате diff

Кнопки копирования и скачивания сохраняют различия в формате unified diff — так их показывают Git и сервисы проверки кода: строки со знаком - удалены, со знаком + добавлены, а заголовки @@ указывают номера строк. Патч строится по точному сравнению, без учёта настроек: в нём остаются и изменения пробелов, и регистра.

Код
@@ -1,3 +1,3 @@
 .card {
-  padding: 16px;
+  padding: 16px 24px;
   color: #333;

Вопросы и ответы

Чем это отличается от сравнения JSON?

Здесь сравниваются строки текста, поэтому перестановка ключей или другой отступ дадут различия. «Сравнение JSON» сравнивает данные: порядок ключей и форматирование там не важны, а различия показываются по путям вроде user.tags[1].

Почему строка показана как удалённая и добавленная заново?

Если рядом изменилось несколько строк, алгоритм сопоставляет их попарно по порядку. Когда строки сильно отличаются или их число на сторонах разное, часть из них окажется отдельно удалённой и добавленной.

Можно ли сравнить очень большие файлы?

До 2 МБ на сторону. Если тексты почти полностью различаются, построчное сравнение теряет смысл и останавливается с сообщением — сравните такие файлы по частям.