代码之家  ›  专栏  ›  技术社区  ›  Nathan Feger

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

  •  24
  • Nathan Feger  · 技术社区  · 15 年前

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

    所以,在您最喜欢的版本控制工具中,您如何判断修改了多少行代码?在我特定的答案中,空行和评论恰好可以用来简化确定答案的时间,但请随意详述。

    在我的特殊情况下,我使用的是SVN,所以我将去掉SVN日志和SVN diff输出的所有其他杂项输出。

    8 回复  |  直到 10 年前
        1
  •  28
  •   Roland Rabien    15 年前

    使用 StatSVN . 我在工作中使用它,它很好,它将按开发人员按月分解loc。它会画出漂亮的图表,告诉你一周中的哪一天以及你什么时候签入最多的代码。它会准确地告诉你你需要知道什么。

        2
  •  10
  •   Bartosz Radaczyński    12 年前

    最简单的解决方案:

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

    这是非常基本的,不排除空行插入等,但也许它足够好?

        3
  •  4
  •   yegor256    10 年前

    尝试使用 代码命中率 公制(它完全符合您的要求)。你可以用这个来收集数据 hoc 在本博客文章中解释: Hits-of-Code Instead of SLoC

        4
  •  3
  •   Taylor Leese    15 年前

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

        5
  •  1
  •   Gadget    13 年前

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

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

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

        6
  •  0
  •   James A. N. Stauffer    11 年前

    如果你被困在简历上:

    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

        7
  •  -1
  •   Dean J    15 年前

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

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

    再做一个视图,并将两者进行比较。如果多个开发人员正在处理同一个文件,我就不知道了。我不能说我对使用ClearCase很兴奋。

        8
  •  -2
  •   Michael Mann    15 年前

    如果您使用的是Subversion,那么可以将svn log命令与--xml开关一起使用,并且可以从中提取代码行。您可以使用SVN帮助日志查看SVN日志的选项。由于您的输出是XML,所以您可以运行此XML并在代码中聚合行计数,然后从代码开始。