Version control 可以在ClearCase配置规范中使用变量吗?

Version control 可以在ClearCase配置规范中使用变量吗?,version-control,clearcase,wildcard,config-spec,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% 这可能吗?正确的语法是什么?我已经有一段时间没有

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

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%

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

我已经有一段时间没有在ClearCase中工作了(我们切换到Subversion),但是如果我没有记错的话,就没有办法在ClearCase本机中实现这一点

您可以使用或编写脚本生成器来创建等级库文件,然后将其包含在实际等级库中:

element * CHECKEDOUT
include scripted_file_output
然后跑

cleartool setcs -current

这种方法的问题是,我认为每当您更改MY_分支的值时,都需要重新生成include规范,并且cleartool setcs将运行。

在ClearCase中执行此操作的唯一本地方法是在中使用属性

根据这些规则,您可以根据以下属性进行“查询选择”规则:

element * ...{MY_ATTRIBUTE_NAME=="aValue"}
将在任何具有属性“
MY_attribute\u NAME”且其中包含“
aValue
”的分支上选择最新版本

这意味着您需要更改旧分支上的属性值,将其放在新分支上,“
cleartool setcs
”再次显示您的视图,并且您应该拥有基于新版本选择的新内容

不是很直接,但它可以工作,除了mkbranch部分(需要固定名称)


关于这一点,有几点评论:

包含公共配置规范的解决方案可以用于基本ClearCase解决方案,但是:

  • 需要由所有相关开发商共享
  • 确实需要使用view_服务器刷新其缓存并重新评估当前配置规范,该规范存储在view存储目录的文件config_规范中。这包括:
    • 使用非绝对规范评估时间规则(例如,现在,星期二)
    • 重新评估–配置规则,可能选择与以前不同的派生对象
    • 重新读取包含规则中命名的文件
  • 当包含的公共配置规范文件发生更改时,需要通知所有其他开发人员(ClearCase中不包含本机通知)

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


这样,您只需更改链接(或路径子节点)即可更改与给定固定路径关联的配置规范。

刚刚测试并修复了基于属性的选择规则:它可以工作,并允许您根据其属性值选择分支。该属性将成为您的变量。但它不能用于mkbranch指令。