我的问题涉及LoC指标。我必须提供插入,更改和删除行的统计信息。我的用户使用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行是INSERTED(第16行)。
我的问题是指第18行的变化:你在这里算了多少行?
请让我知道你的想法(以及为什么......)。谢谢。
答案 0 :(得分:1)
此示例来自cleartool diff man page,并且差异不是您通常的diff format。
对于ClearCase:
---------[changed X]----------|----------[changed to Y]---------
一条或多条线路发生了变化。
- X表示第一个文件中的哪些行已更改。
- Y表示替换行在第二个文件中出现的位置。
所以这里:
与其他工具(如git)使用的diff统一格式没有直接的对应关系,这意味着使用默认的cleartool格式的这个问题特定于ClearCase。
如果cleartool diff使用 -diff_format
选项,那么会导致标题和差异以UNIX和Linux diff实用程序的样式报告,这会让更多这种差异的共同解释。
对于LOC和差异来说,一个很好的参考是 CLOC ,这将提供一个 diff loc 专注于以下行:
在你的情况下:
答案 1 :(得分:1)
大多数SCM系统允许您扫描文件,因为它们是作为提交前或提交后挂钩的一部分提交的。您可以运行您喜欢的任何扫描工具并在某处记录统计信息,可能作为文件的属性。