使用cleartool我可以使用以下内容找到与标签关联的所有文件:
ct find -avobs -version "lbtype (Build-Label)" -print
如何在两个标签之间找到所有对象的更改(包括添加和删除)?
答案 0 :(得分:7)
在ClearCase中(在我的安装中的管理下),有Report Builder。在元素/标签下,您可以根据需要选择“在两个标签之间更改的元素”或“在两个标签之间更改的版本”。然后,您可以选择要分析的路径,并选择要比较的两个标签。
流程运行后,您可以选择将结果保存为HTML,XML或CSV。
答案 1 :(得分:5)
还有另一种方法,mount: invalid option - 'managed'
是旧标签,LABEL1
是最新标签。检查标签的创建日期并在发出命令之前交换它们,因为它打印了LABEL2
条件语句的否定。像魔术一样工作!
&&
答案 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中没有相同版本的所有元素。