Подтвердить что ты не робот

Сколько строк кода было изменено в течение периода времени?

Мне поручено выяснить, сколько строк кода я написал в этом году. Не очень интересно по ряду причин, но похоже, что это может сделать хороший вопрос.

Итак, в вашем любимом инструменте управления версиями, как вы определяете, сколько строк кода было изменено? В моем конкретном ответе пустые строки и комментарии используются для упрощения времени, отведенного для определения ответа, но не стесняйтесь уточнять.

В моем конкретном случае я использую svn, поэтому я собираюсь избавиться от всех --- и других misc-выходных данных svn log и svn diff.

4b9b3361

Ответ 1

Используйте StatSVN. Я использую его на работе, и это здорово, он сломает LOC разработчиком по месяцам. Это будет рисовать красивые графики, рассказать вам, какой день недели и во сколько вы проверите в большинстве кодов. Он точно скажет вам, что вам нужно знать.

Ответ 2

Простейшее решение:

svn diff -x --ignore-eol-style -x -w http://svn/tags/releases/1.0 http://svn/tags/releases/2.0/ |diffstat

это очень рудиментарно и не исключает вставки пустых строк и т.д., но, возможно, это достаточно хорошо?

Ответ 3

Попробуйте использовать метку Хит-кода (что делает именно то, что вы ищете). Вы можете собирать данные, используя этот hoc, поясненный в этом сообщении в блоге: Hits-of-Code вместо SLoC

Ответ 4

Fisheye может рассказать вам, сколько строк кода было зафиксировано для каждого разработчика. Есть хорошая функция построения диаграмм, которая может дать вам красивые графики для этого.

Ответ 5

Я также пытался решить задачу, такую ​​как "сколько строк было удалено, добавлено или просто изменено за выбранный период времени". Поэтому я написал простую оболочку script (только для Linux). Он собирает статистику sipmle о модификациях кода. Более подробную информацию и общий script вы можете найти здесь:

http://cyber-fall.blogspot.com/2011/10/tools-linux-svn-generate-statistic.html

Надеюсь, это поможет вам и другим!

Ответ 6

Если вы застряли на cvs:

cvs annotate > annotate.txt
rem remove the portion before the name
sed "s/^[0-9. (]*//" annotate.txt > annotate2.txt
rem remove the portion after the name
sed "s/[ ].*$//" annotate2.txt > annotate3.txt
sort annotate3.txt > annotate4.txt
uniq -c annotate4.txt > annotate5.txt

http://jamesjava.blogspot.com/2007/01/who-has-changed-most-lines-in-cvs.html

Ответ 7

В Clearcase возьмите спецификацию конфигурации и добавьте:

time  <date-time>
<rules for choosing branches or labels>
end time

Сделайте второй снимок и сравните два. Если несколько разработчиков работают над одними и теми же файлами, я понятия не имею. Я не могу сказать, что я в восторге от использования Clearcase, когда-либо.

Ответ 8

Если вы используете subversion, вы можете использовать команду svn log с ключом -xml, и вы можете вытащить строки кода оттуда. Вы можете просмотреть параметры журнала svn, используя svn help log. Поскольку ваш результат - xml, вы можете запустить этот xml и агрегировать количество строк в коде и перейти оттуда.