2

在 ClearCase 配置规范中,是否可以根据元素属性(而不是版本属性)选择版本?例如:

element * ...{SOME_ELEM_ATTR==SOME_VALUE&&lbtype(MY_LABEL1)}

这不起作用,因为“元素”规范的最后一部分是版本选择器,它只查看版本属性。

我想要做的是将我的文件划分为两个或多个类,并且有不同的“元素”行适用于不同的文件类。我尝试使用属性标记一个类中的所有元素,但是尝试将选择基于配置规范中的选择时遇到了死胡同。我能看到做这种事情的唯一方法是将一个类的所有文件放在一个地方并使用第二个构造(“模式”)来区分:

element .../all_class1_files/... MY_LABEL1

但这真的很难看,因为您必须将一个类的所有文件移动到一个地方,或者有一个巨大的配置规范列出所有单独的目录和/或文件。

提前致谢...

射线

4

2 回答 2

0

我想我已经有了一个很好的解决方案,使用“trtype”作为选择标准(似乎是唯一从元素继承到版本的查询函数)。如果 Class1 和 Class2 元素分别附加了虚拟触发器 Class1Files 和 Class2Files,那么类似

element * .../{trtype(Class1Files)&&lbtype(MY_LABEL1)}
element * .../{trtype(Class2Files)&&lbtype(MY_LABEL2)}

应该做的伎俩。这会在 Class1 中选择带有 MY_LABEL1 的文件,在 Class2 中选择带有 MY_LABEL2 的文件。我还没有真正尝试过,但我会让你知道它是如何工作的。

于 2010-06-17T16:14:35.087 回答
0

第一个解决方案是用分支替换属性标准。
这样,您将能够更轻松地标记来自一个或另一个分支的所有文件,而不是“具有给定属性的所有文件”。

除了这个解决方法之外,您会在此处(或在手册页)中找到一些find基于属性的命令。 然后,您可以将查询与“ ”指令结合起来放置您想要的标签。 这样,您就不必弄乱配置规范语法(它可能不支持您所追求的确切选择标准)。
find-exec


我没测试过,你可以试试

element * ...{SOME_ELEM_ATTR==SOME_VALUE && lbtype_sub(MY_LABEL1)}

, 因为lbtype_sub是一个元素、分支和版本选择器(而lbtype只是一个版本选择器)。
但是,由于lbtype似乎不是配置规范标准的一部分,我怀疑它是否可以在所述配置规范中工作。

于 2010-06-16T19:48:11.487 回答