Skip to content

diff

Сканирует проект и отдаёт ScanDiff против ранее сохранённого baseline.

Полезно для PR-комментариев «что изменилось с main» и для трендовых дашбордов.

Синопсис

archora diff [path] --base <baseline.json> [options]

Опции

ОпцияЗначение
--base <file>Обязателен. Baseline JSON-снапшот для сравнения.
--output, -o <file>Запись diff JSON в файл вместо stdout.
--quietГлушит сводку дифа в stderr.
--help, -hПоказать справку.

Вывод

JSON-документ ScanDiff — схему см. в packages/core/src/diff. Верхнеуровневые поля:

  • summary — счётчики добавленных / удалённых / изменённых модулей и циклов.
  • addedModules, removedModules, changedModules — записи по модулям.
  • newCycles, resolvedCycles — полные записи циклов.
  • metricDeltas — before/after по fan-in, fan-out, coupling, hotness для каждого модуля.

Однострочная сводка пишется в stderr:

Diff: +N / -M modules, K changed, +A / -B cycles.

Примеры

bash
# Сохранить baseline сегодня, диффнуть через неделю
archora analyze . > baseline.json
# … неделя рефакторов …
archora diff . --base baseline.json -o diff.json

# Прямо в jq
archora diff . --base baseline.json --quiet \
  | jq '{addedModules: (.addedModules | length), newCycles: (.newCycles | length)}'

Когда diff, а когда report --base

  • diff — машинно-читаемый JSON только из изменений. Для пайпинга, кастомных дашбордов, архивирования.
  • report --base — человеко-читаемый Markdown, включающий секцию диффа. Для PR-комментариев.

Выпущено под лицензией BUSL-1.1.