计数随时间变化的代码行
有没有什么好的工具可以计算在一个特定时间段内在mercurial repository中更改的代码行数? 一些沿着statsvn的行将是伟大的,但任何计数在6个月内更改的代码行数将做(包括一个聪明的参数组合hg日志)。 谢谢。
PS:请不要讨论测量这个数字的目的;)
hgstream失扩展是你想要的。
您可以通过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
设置了一个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进行testing。
我需要这样做,并花了相当多的时间与hg churn扩展和类似的解决scheme。
最后,我发现最适合我的是CLOC(Count Code of Code): http ://cloc.sourceforge.net/
您可以给它两个文件夹,其中包含两个版本的项目,它将统计所有相同的行,修改,添加,删除。 它承认多种语言和项目的代码,评论和空白行。
为了使用它,我从Hg中将两个版本的代码抽出到两个并行的文件夹中,然后使用cloc –diff –ignore-whitespace