查找标签之间的更改

时间:2010-03-17 13:10:56

标签: clearcase

使用cleartool我可以使用以下内容找到与标签关联的所有文件:

ct find -avobs -version "lbtype (Build-Label)" -print

如何在两个标签之间找到所有对象的更改(包括添加和删除)?

4 个答案:

答案 0 :(得分:7)

在ClearCase中(在我的安装中的管理下),有Report Builder。在元素/标签下,您可以根据需要选择“在两个标签之间更改的元素”或“在两个标签之间更改的版本”。然后,您可以选择要分析的路径,并选择要比较的两个标签。

流程运行后,您可以选择将结果保存为HTML,XML或CSV。

答案 1 :(得分:5)

还有另一种方法,mount: invalid option - 'managed' 是旧标签,LABEL1是最新标签。检查标签的创建日期并在发出命令之前交换它们,因为它打印了LABEL2条件语句的否定。像魔术一样工作!

enter image description here

&&

答案 2 :(得分:4)

正如“How to search files by label

的答案所述
cleartool find -all -element "{lbtype_sub(REL1)}" -print

更简单,如果元素的任何版本具有标签
,则lbtype_sub允许查询为真 (见query_language man page

cleartool find -all -element '{lbtype_sub(REL1) && lbtype_sub(REL2)}' ^ 
  -version '{!(lbtype(REL1) && lbtype(REL2)) && ^
  (lbtype(REL2) || lbtype(REL1))}' -print 

会找到所有没有这两个标签的元素,列出当前VOB中标记为REL1或REL2但不是两者的所有版本。

注意:如果标签是UCM基线,那么这当然更简单(ct diffbl):

ct diffbl -ver BL1@\myPVob BL2@\myPVob

答案 3 :(得分:0)

要查找所有元素,以及config_spec删除或未选择的元素,请将–nvisible添加到查找选项。

对于比较,我有一个名为freeze-list的shell脚本,它或多或少运行与您相同的查找命令(将输出重定向到<label>.versions)。

然后我有一些其他的perl脚本需要两个这样的文件,读取它们并比较每个元素。我有例如freeze-compare-text用于普通diff -u输出,freeze-compare-kdiff3在每个文件上开始kdiff3比较,其中有一些变化(有一些智能以避免误报,其中0元素在新分支与起始版本等相同)。而且我也有一个freeze-compare-diffstat(基本上将输出汇总到diffstat)。

如果您只想将标签之间的更改作为一次性操作感兴趣,则可以运行

ct find -avobs –nvisible -version "lbtype(label1)" -print | sort > label1.versions
ct find -avobs –nvisible -version "lbtype(label2)" -print | sort > label2.versions
comm -3 label1.versions label2.versions

将列出label1和label2中没有相同版本的所有元素。