你会如何测量插入/更改/删除代码行(LOC)?(How would you measure inse

2019-08-31 13:58发布

我的问题是关于控制线指标。 我必须提供插入,更改和删除的那些行的统计数据。 我的用户使用ClearCase和低于此基础上的例子,但是我相信,我的问题是一般。

请对下面的例子(从ClearCase的文档拍摄)看看。 它比较两个文件版本, /main/1 (左侧)和/main/3 (右侧)。

  ******************************** (file summary) <<< file 1: util.c@@/main/1 >>> file 2: util.c@@/main/3 ******************************** ----------[after 15]------|-------[inserted 16]------ (header) | char *s; (difference) |- ---------[changed 18]-----|----[changed to 19-21]---- (header) return ctime(&clock); | s = ctime(&clock); (difference) - | s[ strlen(s)-1 ] = '\0'; | return s; |- 

毫无疑问的是1号线插入(第16行)。

我的问题是指第18行的变化:有多少行,你这里算?

  • 3个更改的行?
  • 1条改变的线?
  • 1条变为线2次插入的行?
  • 你觉得别的东西......?

请让我知道你怎么想(为什么?)。 谢谢。

Answer 1:

这个例子是从cleartool差异手册页 ,并且DIFF是不是你平时的diff格式 。

对于ClearCase:

---------[changed X]----------|----------[changed to Y]---------

一个或多个线的地方改变。

  • X表示其中在第一文件中的行被改变。
  • Y表示,其中置换线发生在第二个文件。

所以在这里:

  • 1线改变
  • 通过3行替换

没有直接等同与其他工具使用(如GIT)的DIFF统一格式,这意味着这一问题,使用默认cleartool格式,特定于ClearCase的。

如果cleartool差异所使用的-diff_format选项,这将导致两个头和分歧在UNIX和Linux diff工具,这将让这种差异的一个比较常见的演绎风格进行报告。


WHE谈到LOC和差异,一个很好的参考, CLOC ,这将给一个DIFF LOC重点线whic是:

  • 相同
  • 改性
  • 添加
  • 去除

你的情况:

  • 1线改性
  • 加入2行


Answer 2:

大多数SCM系统可让您扫描文件,因为它们被作为一份预先的一部分或后commit钩子。 你可以运行任何你喜欢的扫描工具和地方记录的统计数据,也许该文件的属性。



文章来源: How would you measure inserted / changed / removed code lines (LoC)?