在一段时间内修改了多少行代码?

时间:2009-10-08 14:23:23

标签: svn version-control

我的任务是弄清楚今年我写了多少行代码。由于多种原因不是很令人兴奋,但似乎它可以成为一个很好的问题。

因此,在您最喜欢的版本控制工具中,您如何判断修改了多少行代码?在我的特定答案中,空白行和注释恰好计算在内,以简化分配给确定答案的时间,但随时可以详细说明。

在我的特殊情况下,我正在使用svn,所以我将摆脱svn log和svn diff输出的所有---和其他misc输出。

8 个答案:

答案 0 :(得分:28)

使用StatSVN。我在工作中使用它,它很棒,它将按月由开发人员分解LOC。它会绘制漂亮的图表,告诉您一周中的哪一天以及您查看大部分代码的时间。它会告诉你你需要知道什么。

答案 1 :(得分:10)

最简单的解决方案:

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

这是非常简陋的,不排除空行插入等等,但也许它已经足够好了?

答案 2 :(得分:4)

尝试使用 Hits-of-Code 指标(这正是您正在寻找的)。您可以使用此博文中解释的hoc收集数据:Hits-of-Code Instead of SLoC

答案 3 :(得分:3)

Fisheye可以告诉您每个开发人员提交了多少行代码。有一个很好的图表功能,可以为你提供漂亮的图表。

答案 4 :(得分:1)

我还试图解决任务,例如“在选定的时间段内删除,添加或仅更改了多少行”。所以我编写了简单的shell脚本(仅适用于Linux)。它收集了一些关于代码修改的sipmle统计信息。您可以在此处找到更多详细信息和共享脚本:

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

希望它对你和他人有所帮助!

答案 5 :(得分:0)

如果你被困在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

答案 6 :(得分:-1)

在Clearcase中,获取配置规范并添加:

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

制作第二个视图,然后比较两者。如果多个开发人员正在处理相同的文件,我不知道。我不能说使用Clearcase让我很激动。

答案 7 :(得分:-2)

如果你使用的是subversion,你可以使用带有--xml开关的svn log命令,你可以从那里拉出代码行。您可以使用svn help log查看svn log的选项。由于您的输出是xml,因此您可以运行此xml并在代码中汇总行数并从那里开始。

相关问题