在bash命令行上使用cleartool,我想为给定的元素找到all编号为0的版本,无论哪个分支持有它们。
问题是,据我所知,“ cleartool find”命令在其版本选择器中至少需要特定的分支名称:
=>这有效:cleartool find MyElem -version "version(.../MyBranch/0)" -print
=>情况并非如此:cleartool find MyElem -version "version(.../0) -print
到目前为止,我唯一的解决方案是解析版本树。它可以工作,但是在一长串元素上运行时速度很慢:cleartool lsvtree -all -s MyElem | grep -e '/0$'
有人知道更聪明的解决方案吗?
非常感谢。
0
版本是为添加到源代码管理中的任何新元素创建的placeholder version。
但是a version selector,即使省略号通配符'...
'也必须包含一个分支。
由于所有分支均源自main/
,请检查是否可行:
cleartool find MyElem -version "version(/main/.../0)" -print
如果没有,我在[cleartool find
]中提到的第一个cleartool find
解决方案的变体是:
Clearcase finding a specific file on any branch
如果文件“ cleartool find -all -name "MyElem" -ver "! lbtype(<non-existing label>)" -print
”跨分支,则应打印所有版本。您可以grep表示'MyElem
'版本。但这可能最终会像/0
一样慢。
即使您正在寻找/ 0版本是分支上最新版本的分支,请尝试:
lsvtree
我认为您可以使用:找到很多分支的那些版本:
cleartool find -ver "version(.../MyBranch/0) && version(.../MyBranch/LATEST)" -print
如何处理这些版本取决于您。请注意,由于级联-mkbranch规则集可能会将/ main / foo / 0创建为/ main / foo / bar / 0的父级,因此您可能不希望仅删除这些willn-nilly。如果要删除前一个分支,则也可能会删除或要求删除后者,而这可能不是您想要的。 (rmbranch手册页将告诉您有关rmbranch是否将删除子分支的知识。...