我正在尝试制作一个Clearcase配置规范,当文件有两个我想要的标签时,该规范将根据较大的修订号选择一个文件。
示例:
file1.c; rev 1 ---> PR438
file1.c; rev 2
file1.c; rev 3 ---> PR433
的"基本"配置规范
element * PR438
element * PR433
将选择file1.c;rev1,因为这个标签是在配置规范中首次指定的。
我想要的是选择file1.c;rev 3,而不必分析每个文件的标签顺序来正确地订购配置规范
基本上,我想要一个规则,即选择PR438和PR433,如果一个文件同时具有这两个标签,则使用修订号最高的文件。
基本上,我想要一个规则,即选择PR438和PR433,如果一个文件同时具有这两个标签,则使用修订号最高的文件。
配置规范不是这样使用选择规则的。
如果正确执行了这些标签的命名约定,则最高(最新)版本将始终为PR438
这意味着首先选择PR438
,然后作为后备,选择PR433
就足够了。
您可以尝试的是选择同时具有两个标签的第一个版本
即使配置规范语法没有指定AND或or运算符,也应该是:
element * {lbtype(PR438)&&lbtype(PR433)}
这是一个蠕虫罐头。在这种情况下,如果NEWER标签附加到OLDER版本,则不能使用标签类型的年龄来解决问题。您正在进入"创建特定于文件的配置规范"领域。
所以,你必须从这样的输出开始:
cleartool find -all -version "lbtype(PR438) || lbtype(PR433)" -print
从那里,你将不得不
- 解析它以定位所有重复的元素名称(去掉版本ID)
- 获取重复文件的更新版本
- 将那些从第二行开始的版本放在基于标签的配置规范中(除非你同意不签出这些文件,在这种情况下,"element*CHECKEDOUT"行并不那么重要
由于您已经走了这么远,您还可以完全基于find输出构建configspec。但这可能会变得难以理解。