Подсчет измененных строк кода с течением времени

есть ли хороший инструмент, который вычисляет количество измененных строк кода за определенный период времени в репозиторий Mercurial? Что-то вроде statsvn было бы здорово, но все, что подсчитывает количество измененных строк кода в течение 6 месяцев (включая умную комбинацию аргументов для журнала hg). Спасибо.

PS: пожалуйста, не обсуждайте цель измерения этого числа;)

3 ответов


на расширение маслобойки hg это то, что вы хотите.

вы можете получить визуальные результаты с активность hg или НД график.


редактировать: hg diff и hg log как поддержать --stat вариант, который может сделать это для вас, только лучше и быстрее.


я сделал псевдоним по имени lines для подсчета измененных строк (не обязательно строк кода) для меня. Попробуйте вставить этот псевдоним в свой .файл hgrc:

[alias]
lines = !echo `hg log -pr $@ | grep "^+" | wc -l` Additions; echo `hg log -pr $@ | grep "^-" | wc -l` Deletions; 

затем передайте ему сначала ревизию, а затем любые необязательные аргументы:

hg lines tip или hg lines 123:456 -u brian

иногда вы хотите знать количество измененных строк без пробелов-только изменения. Это требует использования diff -w под вместо log -p. Я установил linesw псевдоним для этого:

#ignore whitespace
linesw = ![[  =~ : ]] && r= || r="~1:"; echo `hg diff -wr $r | grep "^+\([^+]\|$\)" | wc -l` Additions; echo `hg diff -wr $r | grep "^-\([^-]\|$\)" | wc -l` Deletions; 

hg linesw tip или hg lines 123:456

обратите внимание, что они ведут себя немного иначе, потому что diff и log вести себя по-другому -- например,log примет --user параметр while diff не будет, а при прохождении круга, log покажет изменения, внесенные в первую редакцию, приведенную в диапазон, в то время как diff не будет.

это было протестировано только с помощью bash.


Мне нужно было это сделать, и я провел довольно много времени с расширением HG churn и аналогичными решениями.

в конце концов, я обнаружил, что для меня лучше всего работает CLOC (количество строк кода):http://cloc.sourceforge.net/

вы можете дать ему две папки, содержащие две версии проекта, и он будет считать все строки, которые имеют тот же, изменены, добавлены, удалены. Он распознает несколько языков и код itemises, комментарии и пустые русло.

чтобы использовать его, я вытащил две версии моего кода из Hg в две параллельные папки, а затем использовал cloc --diff --ignore-whitespace