Форматер Diff

Сравнение текстовых и кодовых различий с форматированной подсветкой и параллельным просмотром

Работает локально

Оригинал

Изменённый

Результат diff

Нажмите Сравнить, чтобы увидеть различия между частями

Советы

  • Используйте одинаковые отступы в обоих текстах для более точного построчного сравнения.
  • Унифицированный вид лучше подходит для небольших изменений. Параллельный вид — для значительных различий.
  • добавлен   удалён   изменён
  • Используйте кнопку обмена для изменения направления сравнения и просмотра добавлений как удалений.
  • Ctrl/Cmd + Enter запускает сравнение из любого поля ввода.

Два режима diff, выбор автоматически

Data Diff отталкивается от того, что вы вставили. Когда обе части парсятся как JSON, переключается на структурный diff; во всех остальных случаях сравнивает построчно. Режим также можно зафиксировать вручную с помощью вкладок над результатом.

Что показывает структурный diff JSON

  • Добавлено — ключ или индекс, существующий только в изменённой части, с предпросмотром его значения.
  • Удалено — ключ или индекс, существующий только в исходной части.
  • Изменено — один и тот же путь содержит разное значение в каждой части, показывается как было → стало.
  • Изменён тип — путь содержит объект с одной стороны и скаляр или массив с другой.
  • Каждая запись содержит путь в той же нотации $.store.books[0].title, которая используется в Инспекторах JSON, XML и YAML, чтобы вы могли сразу перейти к нему в исходнике.

Текстовый diff, когда он нужен

Построчное сравнение подсвечивает каждую добавленную и удалённую строку с номерами строк. Оно работает с кодом, логами, файлами конфигурации и любым текстом — включая JSON, у которого изменилось форматирование, но не данные.

Пример: что видит режим JSON, но не видит текстовый режим

Два фрагмента ниже различаются только порядком ключей и отступами. Текстовый diff помечает практически каждую строку как изменённую; структурный diff JSON корректно сообщает об отсутствии изменений.

A
{
  "name": "web",
  "version": "1.0"
}
B
{
  "version": "1.0",
  "name": "web"
}

Как это вписывается в ваш рабочий процесс

Data Diff — это этап сравнения в рабочей среде. Отправляйте сюда любой документ из других инструментов:

Часто задаваемые вопросы

Ответы на распространенные вопросы о форматировании Diff Formatter

Да, наш форматер diff полностью бесплатен и не требует регистрации. Вся обработка выполняется в вашем браузере.

Вы можете сравнивать любое текстовое содержимое: код, конфигурационные файлы, JSON, XML, обычный текст или любой другой текстовый формат.

Добавленные строки отображаются с зелёным фоном, удалённые — с красным, а изменённые строки показывают обе версии рядом.

Да. Нажмите кнопку обмена для изменения порядка оригинального и изменённого текстов, превращая добавления в удаления и наоборот.

Инструмент использует алгоритм сравнения Myers — тот же алгоритм, который используется Git для сравнения текстов, обеспечивая точные и минимальные различия.

Формат unified diff (-u), создаваемый git diff, diff -u и любой крупной системой контроля версий — один или несколько разделов файлов, каждый с заголовками ---/+++, маркерами hunk @@ и строками +/-/контекста. Точный формат задокументирован в GNU diffutils; форматтер переформатирует hunks с выровненными номерами строк и подсветкой синтаксиса.

@@ -3,7 +3,8 @@ означает: в старом файле, начиная со строки 3, показано 7 строк; в новом файле соответствующий раздел начинается со строки 3 и занимает 8 строк. Числа позволяют с первого взгляда оценить размер изменения — здесь добавлена одна строка. Форматтер сохраняет эти маркеры нетронутыми, поскольку от них зависят patch(1) и git apply.

Нет — он форматирует и поясняет патчи, но не применяет их. Для применения используйте git apply или patch -p1; для слияния конфликтующих hunks — инструмент слияния вашей VCS. Форматирование намеренно работает только на чтение, поэтому можно безопасно вставить любой патч, включая содержащий отклонённые или конфликтующие hunks, для наглядного просмотра.

{-- * External Resources Component(#19 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / 官方语言文档 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}

Авторитетные источники

Стандарты и официальная документация, определяющие форматы, с которыми работает этот инструмент.

Связанные инструменты