Подсчет измененных строк кода с течением времени
есть ли хороший инструмент, который вычисляет количество измененных строк кода за определенный период времени в репозиторий 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