例如,不要编写以下内容:
element * .../my_branch_01/LATEST
element * .../base_branch/LATEST -mkbranch my_branch_01
我想写这样的东西:
MY_BRANCH=my_branch_01
element * .../%MY_BRANCH%/LATEST
element * .../base_branch/LATEST -mkbranch %MY_BRANCH%
这甚至可能吗?什么是正确的语法?
答案 0 :(得分:3)
在ClearCase中执行此操作的唯一原生方法是在 config-spec 中使用属性。
根据version selector规则,您可以根据属性进行“按查询选择”规则:
element * ...{MY_ATTRIBUTE_NAME=="aValue"}
会在任何分支上选择LATEST
版本,其中包含“MY_ATTRIBUTE_NAME
”属性,其中包含“aValue
”。
这意味着您需要更改旧分支上的属性值,将其放在新分支上,再次“cleartool setcs
”您的视图,并且您应该根据新版本选择获得新内容。< / p>
不是很直接,但它可以工作, 除了mkbranch部分 (需要固定名称)。
关于GeekCyclist's answer,请注意几点:
包含通用配置规范的解决方案适用于Base ClearCase解决方案,但是:
如果您需要一个具有可变内容的“环境”(即一个“视图”或工作空间)(取决于不同的分支),您需要定义指向不同视图的符号链接(或windows subst) (每个都有自己的配置规范)
这样,您只需更改链接(或路径替换)以更改与给定固定路径关联的配置规范。
答案 1 :(得分:1)
我在ClearCase工作已经有一段时间了(我们切换到了Subversion),但如果我没记错的话,就没有办法将它原生于ClearCase。
您可以使用或编写一个脚本生成器来创建您的spec文件,然后将其包含在实际规范中:
element * CHECKEDOUT
include scripted_file_output
然后运行
cleartool setcs -current
这种方法的问题在于,我相信只要你更改MY_BRANCH的值,就需要重新生成包含规范并运行cleartool setcs。