计算两个版本之间的代码行

时间:2010-12-01 20:03:21

标签: java versioning clearcase lines-of-code

有没有办法比较两个clearcase版本之间的代码行,或者无论版本控制器是什么,我想比较两个不同的版本比较主分支与开发分支。我正在寻找Java的主题

5 个答案:

答案 0 :(得分:2)

如果您需要比较+查看+编辑线条,那么VonC对WinMerge的推荐非常好,如果您需要比较代码行数(计数),那么像sloc diff工具一样ProjectCodeMeterCLOC会更好。

答案 1 :(得分:1)

虽然您可以使用任何差异/合并工具(如Windows上的WinMerge)来对所有文件进行比较,但我建议您使用:

  • 两个具有正确配置的ClearCase视图以选择正确的版本
  • 两个动态视图,以便快速获取所有相关版本(快照视图加载时间过长)

答案 2 :(得分:0)

有大量的合并/差异工具。 我使用meld,它具有很好的可视化和文件和目录比较处理

答案 3 :(得分:0)

如果您唯一要做的就是计算行数并使用svn我建议您运行

svn blame -r N:M | wc -l

我无法检查此命令行是否正常工作但想法是在两个有趣的修订版本(N和M)之间使用svn blame,然后运行wc -l(行数)。

我相信每个源代码控件的命令都与svn blame类似。

答案 4 :(得分:0)

你可以像VonC建议使用两种不同的观点。或者,如果您确切知道要查找的内容,则可以使用file@@version语法直接访问这两个版本。如果要自动化某些东西(在java中实现某些东西给我建议),两个视图可能是最好的选择。

当你说“比较两个clearcase版本之间的代码行”时,我假设你正在寻找标准cleartool diff以外的东西(btw,KDiff3是一个优秀的diff实用程序,它具有clearcase集成,我高度推荐它,并假设它更符合你所看到的“计数行数”方向。

然而,只计算线条的差异只会提供有限的信息,通常知道构成差异的线条是否大多是添加或删除也很有趣。要提供此类信息,您可以使用diffstat(请参阅this answer输出示例)。

在我上一份工作中,我写了一个java gui来运行

diff -u file@@/main/branch1/LABEL1 file@@/main/branch2/LABEL2 | diffstat

给出两个标签,迭代几个文件,但我依赖于来自cygwin的bash,diff和diffstat,我不知道这里有任何纯Java替代品。