Инструмент для расчета метрик из системы контроля версий

Существует ли какой-нибудь простой инструмент, который может вычислять различные метрики из системы контроля версий? Большинство калькуляторов метрик работают только с исходным кодом. Я использую СВН. Некоторые хорошие графические данные, такие как графики или гистограммы, тоже будут хороши.

Такие показатели, как:

  • Как часто изменяется каждый файл
  • Сколько файлов или LoC было изменено в коммитах (среднее, медиана, гистограмма)
  • Какие файлы часто меняются вместе
  • Сколько LoC изменено для каждого файла (среднее, медиана, гистограмма)
Это не для SVN (как вы просили), но есть решение на основе Python под названием git-churn , которое может стать началом того, что вы хотите. Python легко модифицировать, поэтому вы можете выполнять аналогичные операции SVN и добавлять визуализации с помощью какого-либо другого инструмента.

Ответы (2)

Я не уверен, что вы найдете инструмент, отвечающий всем вашим требованиям, но я могу порекомендовать вам StatSvn . Мы используем его как часть нашего ночного процесса сборки Jenkins. Он определяет LOC и отток для нас.

В книге «Ваш код как место преступления» (Amazon Germany) Адам Торнхилл использует системы контроля версий, чтобы найти множество интересных фактов и представить их «по-новому». Круто то, что сгенерированная графика интерактивна. Вы также можете найти видео Адама Торнхилла на Youtube, но имейте в виду, что они кажутся немного постановочными (на мой вкус, они слишком много внимания уделяют «месту преступления»).

Он опубликовал свой код под названием Code Maat на Github .

  • это бесплатно / бесплатно / с открытым исходным кодом
  • он поддерживает SVN, GIT, P4, Mercurial и TFS.

Метрики, которые он использует,

  • Частота изменений (возраст кода), см. MetricsTreeMap
  • Кодовые изменения (добавления и удаления)
  • Шаблоны владения (какой разработчик важен для класса и может быть единственной точкой отказа, например, если он покинет компанию)

Код Maat сам по себе, вероятно, не является идеальным ответом, поскольку он не очень заботится о метриках LoC. Поэтому комбинируйте его с другими инструментами, такими как StatSVN, чтобы получить максимальную отдачу от данных.

Один минус: бинарников для скачивания не нашел, так что видимо придется собирать самому.