说,我在ClearCase中有两个不同的动态视图。
我想知道是否有任何命令要提交报告:
两个版本之间的“x lines added , y lines deleted , z lines changed
”。
答案 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 1
,file 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)