0

我正在寻找一种工具来帮助我为给定项目编译某些代码指标的历史记录。

该项目存储在一个 mercurial 存储库中,并且有大约一百个修订版。我正在寻找的东西:

  • 检查每个修订
  • 计算指标并将它们存储在某个带有修订标识符的地方
  • 对下一个版本做同样的事情

首先,计算 SLOC 就足够了,但分析 # of Tests、TestCoverage 等也很好。

我知道这样的事情通常由 CI 服务器处理,但是我独自参与这个项目,因此没有费心设置 CI 服务器(我想使用 TeamCity,但我真的没有看到这样做的好处所以在开始时)。如果我现在设置我的 CI 服务器,它可以处理吗?

4

3 回答 3

2

根据 jitter 的建议,我编写了一个在 cygwin 内运行的小 bash 脚本,使用 sloccount 来计算源代码行数。输出被简单地转储到一个文本文件中:

 #!/bin/bash
COUNT=0 #startrev
STOPATREV = 98
until [ $COUNT -gt $STOPATREV ]; do
        hg update -C -r $COUNT >> sloc.log # update and log
        echo "" >> sloc.log # echo a newline
        rm -r lib # dont count lib folder
        sloccount /thisIsTheSourcePath | print_sum
        let COUNT=COUNT+1
done 
于 2009-12-26T19:22:16.790 回答
1

您可以编写一个例如 shell 脚本

  1. 签出第一个版本
  2. 运行sloccount(保存输出)
  3. 查看下一个版本
  4. 重复步骤 2-4

或者看看现在似乎有善变支持的ohloh 。

否则不知道任何支持 mercurial 的 SCM 统计工具。由于 mercurial 相对年轻(自 2005 年以来),可能需要一些时间才能支持此类“次要用例”。(提示:可能自己提供一个 hgstat 库,就像 svn 和 csv 一样)

于 2009-11-20T18:54:14.847 回答
0

如果是我编写软件来做那种事情,我想我会将项目的指标结果转储到一个文件中,并对其进行修订控制。然后“历史分析”工具将不得不只提取该文件的旧版本,而不是必须提取整个存储库的每个旧副本并每次重新运行所有测试。

于 2009-11-20T18:29:34.507 回答