Clearcase:找到编号为0的所有元素版本,无论哪个分支

问题描述 投票:1回答:2

在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$'

有人知道更聪明的解决方案吗?

非常感谢。

find version clearcase cleartool
2个回答
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
投票

即使您正在寻找/ 0版本是分支上最新版本的分支,请尝试:

lsvtree

我认为您可以使用:找到很多分支的那些版本:

cleartool find -ver "version(.../MyBranch/0) && version(.../MyBranch/LATEST)" -print

如何处理这些版本取决于您。请注意,由于级联-mkbranch规则集可能会将/ main / foo / 0创建为/ main / foo / bar / 0的父级,因此您可能不希望仅删除这些willn-nilly。如果要删除前一个分支,则也可能会删除或要求删除后者,而这可能不是您想要的。 (rmbranch手册页将告诉您有关rmbranch是否将删除子分支的知识。...

© www.soinside.com 2019 - 2024. All rights reserved.