Перейти к содержанию

Анализатор унифицированного diff

Анализируйте унифицированный diff или файл .patch: измененные файлы, добавленные и удаленные строки.

Входные данные
Выходные данные

Анализатор унифицированного diff

Вставьте унифицированный diff — результат `diff -u`, `git diff` или содержимое файла `.patch` — и этот инструмент создает обзор по файлам: сколько строк было добавлено и удалено в каждом файле, а также итоги по всему diff. Он предназначен для быстрого изучения большого патча перед открытием его в полноценном инструменте code review или для вставки сводки diffstat-стиля в описание pull request или changelog.

Сортируйте список файлов по пути или по количеству изменений, чтобы увидеть наиболее измененные файлы в первую очередь. Включите опцию "Показать отдельные блоки изменений", чтобы разбить каждый файл на отдельные блоки `@@` вместо просто итога на уровне файла. "Обнаруживать переименования и изменения прав доступа" распознает заголовки переименований и изменений режима git и помечает эти файлы вместо просто перечисления нового пути. "Игнорировать изменения только в пробелах" исключает пару удаленной/добавленной строк, которые отличаются только пробелами — полезно после того как форматер или линтер обработал файл. Отфильтруйте по расширению, чтобы сосредоточиться только на файлах `.ts`, например, в смешанном фронтенд/бэкенд патче, и исключите сгенерированный результат, такой как `dist/*` или `*.min.js`, чтобы артефакты сборки не заполняли сводку.

Формат результата переключается между простой текстовой таблицей, таблицей Markdown, готовой к вставке в описание pull request, и CSV для электронных таблиц. Опция "Показать соотношение добавлений/удалений" добавляет столбец с соотношением добавленных к удаленным строкам по файлам, что быстро показывает файлы, которые в основном содержат новый код, в отличие от в основном удаленного кода. Изменения бинарных файлов распознаются и сообщаются с нулевым количеством строк, а не пропускаются или неправильно подсчитываются.

Все работает локально в вашем браузере — diff никогда не покидает ваше устройство, что важно, когда он поступает из приватного репозитория. Скопируйте сводку, загрузите ее как файл .txt или отправьте прямо на вход другого инструмента, чтобы продолжить работу.

FAQ

Какие форматы diff он принимает?
Унифицированный формат diff из `diff -u`, `git diff`, `git format-patch` и стандартных файлов `.patch`, с заголовком `diff --git` или без него.
Как он считает добавленные и удаленные строки?
Он считает каждую строку `+` и `-` внутри каждого блока. Когда включена опция "Игнорировать изменения только в пробелах", пара удаленной/добавленной строк, которые идентичны после удаления пробелов, не считается с обеих сторон.
Может ли он показывать переименованные или измененные по прав доступа файлы?
Да. Когда включена опция "Обнаруживать переименования и изменения прав доступа", файлы, отмеченные git с заголовками `rename from`/`rename to` или `old mode`/`new mode`, помечаются соответственно, показывая старый и новый путь для переименования.
Может ли он обрабатывать diff без заголовка `diff --git`?
Да. Простой результат `diff -u old new`, который имеет только строки `---`/`+++`/`@@` и не имеет специфичных для git заголовков, обрабатывается так же.
Загружается ли мой diff куда-нибудь?
Нет. Анализ работает полностью в вашем браузере — diff и любой код, который он содержит, никогда не покидает ваше устройство.