Ответ 1
hg churn extension - это то, что вы хотите.
Вы можете получить визуальные результаты с помощью hg activity или hg chart.
Есть ли хороший инструмент, который вычисляет количество измененных строк кода за определенный период времени в ртутном хранилище? Что-то вроде statsvn было бы здорово, но все, что подсчитывает количество измененных строк кода в течение 6 месяцев, будет делать (в том числе умный сочетание аргументов с hg log). Спасибо.
PS: Пожалуйста, не обсуждайте цель измерения этого числа;)
hg churn extension - это то, что вы хотите.
Вы можете получить визуальные результаты с помощью hg activity или hg chart.
Изменить: hg diff
и hg log
поддерживают опцию --stat
, которая может сделать это для вас, только лучше и быстрее.
Я сделал псевдоним lines
для подсчета измененных строк (не обязательно строк кода) для меня. Попробуйте поместить этот псевдоним в ваш файл .hgrc:
[alias]
lines = !echo `hg log -pr [email protected] | grep "^+" | wc -l` Additions; echo `hg log -pr [email protected] | grep "^-" | wc -l` Deletions;
Затем сначала передайте его, затем следуйте произвольным аргументам:
hg lines tip
или hg lines 123:456 -u brian
Иногда вам нужно знать количество измененных строк, исключая изменения только в виде пробелов. Для этого нужно использовать diff -w
снизу вместо log -p
. Я установил для этого псевдоним linesw
:
#ignore whitespace
linesw = ![[ $1 =~ : ]] && r=$1 || r="$1~1:$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
, а diff
не будет, а при передаче диапазона log
будет показать изменения, внесенные в первую ревизию, указанную в диапазоне, а diff
не будет.
Это тестирование было проверено только с помощью bash.
Мне нужно было это сделать, и потратил немало времени на расширение hg churn и аналогичные решения.
В конце концов, я обнаружил, что лучшим для меня было CLOC (Count Lines of Code): http://cloc.sourceforge.net/
Вы можете дать ему две папки, содержащие две версии проекта, и будет считать все строки одинаковыми, измененными, добавленными, удаленными. Он распознает несколько языков и описаний кода, комментариев и пустых строк.
Чтобы использовать его, я вытащил две версии моего кода из Hg в две параллельные папки, а затем использовал cloc --diff --ignore-whitespace