【发布时间】:2013-01-14 19:12:08
【问题描述】:
说,我在 ClearCase 中有两个不同的动态视图。
我想知道是否有任何命令可以提供报告:
两个版本之间的“x lines added , y lines deleted , z lines changed”。
【问题讨论】:
标签: clearcase
说,我在 ClearCase 中有两个不同的动态视图。
我想知道是否有任何命令可以提供报告:
两个版本之间的“x lines added , y lines deleted , z lines changed”。
【问题讨论】:
标签: clearcase
是的,您可以使用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?
【讨论】:
正如我之前评论的,您可以使用
cleartool diff -serial_format prog.c prog.c@@\main\4
这将格式化差异以查看所有行,而不仅仅是开头。
【讨论】:
对于动态视图,您可以使用 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 格式不包含纯粹的摘要样式。
但由于您可以在动态视图中访问任意两个版本,因此您可以使用任何想要实现特定输出的差异工具。
【讨论】:
【讨论】: