ClearCase动态视图中两个版本之间的差异

时间:2010-12-02 12:26:55

标签: clearcase

说,我在ClearCase中有两个不同的动态视图。

我想知道是否有任何命令要提交报告:
两个版本之间的“x lines added , y lines deleted , z lines changed”。

4 个答案:

答案 0 :(得分:3)

是的,您可以使用diffstat生成非常漂亮的视觉效果“添加x行,删除y行,更改z行”概述(1)。

以下是比较两个最新版本diffstat的输出示例:

$ diff -u diffstat-1.53 diffstat-1.54 | diffstat
 CHANGES    |   12 +++++++++++-
 diffstat.1 |    4 ++--
 diffstat.c |   57 +++++++++++++++++++++++++++++++++++++++++++++++++++------
 3 files changed, 64 insertions(+), 9 deletions(-)

在你的情况下,运行

diff -u /view/VIEW1/SOMEVOB/some/dir_or_file /view/VIEW2/SOMEVOB/some/dir_or_file | diffstat

(1) 实际上,如果不分析线的含义就不能确定“z线改变”(并且计算机算法不能这样做)。例如。如果旧行为int x;且新行为int y;,则a)x已更改为y或b)x已删除且y添加?

答案 1 :(得分:3)

正如我之前评论的那样,你可以使用

cleartool diff -serial_format prog.c prog.c@@\main\4

这将格式化差异以查看所有行而不仅仅是开头。

答案 2 :(得分:1)

对于动态视图,您可以将extended pathnames cleartool diff 一起使用。

此帮助页面“To compare with a version other than the predecessor”提供了所有详细信息:

cleartool diff prog.c prog.c@@\main\4
如果您只查看摘要(仅显示添加,删除和更改的行数),

cleartool diff将无法准确提供您想要的内容:

  

默认文件比较报告以文件摘要开头,文件摘要列出了所有输入文件及其分配为file 1file 2等。
  如果文件之间没有检测到差异,则此列表将替换为文件相同的消息。

     

报告的其余部分是一系列成对差异,每个差异前面都有一个描述性标题行:

******************************** (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;
                          |-

注意:

  

报告添加了x行,y行删除,z行在两个版本之间更改

不,不是cleartool diff:diff格式不包含纯粹的摘要样式。

但由于您可以在动态视图中访问任意两个版本,因此您可以使用任何想要实现特定输出的差异工具

答案 3 :(得分:0)