基于元素属性的ClearCase配置规范选择

基于元素属性的ClearCase配置规范选择,clearcase,config-spec,Clearcase,Config Spec,在ClearCase配置规范中,是否可以基于元素属性(而不是版本属性)选择版本?例如: element * ...{SOME_ELEM_ATTR==SOME_VALUE&&lbtype(MY_LABEL1)} 这不起作用,因为“元素”规范的最后一部分是版本选择器,它只查看版本属性 我要做的是将我的文件划分为两个或多个类,并将不同的“元素”行应用于不同的文件类。我尝试用一个属性标记一个类中的所有元素,但尝试在配置规范中基于该属性进行选择却遇到了死胡同。我能看到的唯一方法是将一个类

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

element * ...{SOME_ELEM_ATTR==SOME_VALUE&&lbtype(MY_LABEL1)}
这不起作用,因为“元素”规范的最后一部分是版本选择器,它只查看版本属性

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

element .../all_class1_files/... MY_LABEL1
但这真的很难看,因为您必须将一个类的所有文件移动到一个位置,或者有一个giantic配置规范列出所有单独的目录和/或文件

先谢谢你


Ray

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

除此之外,您还可以在中找到一些(或)。
然后,您可以将与“
-exec
”指令组合,以放置所需的标签。
这样,您就不必麻烦了(这可能不支持您所追求的确切选择标准)


我没有测试,但你可以试试

element * ...{SOME_ELEM_ATTR==SOME_VALUE && lbtype_sub(MY_LABEL1)}
,因为
lbtype\u sub
是一个元素、分支和版本选择器(而
lbtype
只是一个版本选择器)。

但是,由于
lbtype
似乎不属于配置规范标准的一部分,我怀疑它在所述配置规范中是否有效。

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

除此之外,您还可以在中找到一些(或)。
然后,您可以将与“
-exec
”指令组合,以放置所需的标签。
这样,您就不必麻烦了(这可能不支持您所追求的确切选择标准)


我没有测试,但你可以试试

element * ...{SOME_ELEM_ATTR==SOME_VALUE && lbtype_sub(MY_LABEL1)}
,因为
lbtype\u sub
是一个元素、分支和版本选择器(而
lbtype
只是一个版本选择器)。

然而,由于
lbtype
似乎不是配置规范标准的一部分,我怀疑它在所述配置规范中能否工作。

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

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

我们应该做到这一点。这将选择带有MY_LABEL1的Class1和带有MY_LABEL2的Class2中的文件。我还没有真正尝试过这个方法,但我会让你知道它是如何工作的。

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

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

我们应该做到这一点。这将选择带有MY_LABEL1的Class1和带有MY_LABEL2的Class2中的文件。我还没有真正尝试过这个方法,但我会让你知道它是如何工作的。

谢谢,我感谢你的帮助,VonC。按分支机构选择将起作用,但由于涉及的分支机构数量众多,因此选择过程非常复杂。使用“查找”标记文件不是一个可行的选项,因为每次创建版本时都必须这样做。但是我想我可能找到了一个使用“trtype”查询函数的好方法。@Ray:很有趣。如果你有一个可行的解决方案,你可以把它贴在这里(如果你想选择它作为官方解决方案)谢谢,我感谢你的帮助,VonC。按分支机构选择将起作用,但由于涉及的分支机构数量众多,因此选择过程非常复杂。使用“查找”标记文件不是一个可行的选项,因为每次创建版本时都必须这样做。但是我想我可能找到了一个使用“trtype”查询函数的好方法。@Ray:很有趣。如果你有一个可行的解决方案,你可以把它发布在这里(如果你愿意,选择它作为正式的解决方案)