是否可以在ClearCase配置规范中使用变量?

时间:2009-03-25 03:51:21

标签: version-control clearcase wildcard config-spec

例如,不要编写以下内容:

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%

这甚至可能吗?什么是正确的语法?

2 个答案:

答案 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解决方案,但是:

  • 需要所有相关开发人员提供的分享
  • 确实需要 setcs 来查看view_server以刷新其缓存并重新评估当前的配置规范,该规范存储在视图存储目录中的文件config_spec中。这包括:
    • 使用非绝对规范评估时间规则(例如,现在,星期二)
    • 重新评估-config规则,可能选择与以前不同的派生对象
    • 重新读取包含规则
    • 中指定的文件
  • 所有其他开发人员需要在常见的包含配置文件更改时收到通知(ClearCase中不包含本机通知)

如果您需要一个具有可变内容的“环境”(即一个“视图”或工作空间)(取决于不同的分支),您需要定义指向不同视图的符号链接(或windows subst) (每个都有自己的配置规范)

这样,您只需更改链接(或路径替换)以更改与给定固定路径关联的配置规范。

答案 1 :(得分:1)

我在ClearCase工作已经有一段时间了(我们切换到了Subversion),但如果我没记错的话,就没有办法将它原生于ClearCase。

您可以使用或编写一个脚本生成器来创建您的spec文件,然后将其包含在实际规范中:

element * CHECKEDOUT
include scripted_file_output

然后运行

cleartool setcs -current

这种方法的问题在于,我相信只要你更改MY_BRANCH的值,就需要重新生成包含规范并运行cleartool setcs。