例如,而不是编写以下内容:
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 中执行此操作的唯一本地方法是在config-spec中使用属性。
根据版本选择器规则,您可以制定“通过查询选择”规则,例如基于属性:
element * ...{MY_ATTRIBUTE_NAME=="aValue"}
LATEST将在任何具有属性“ MY_ATTRIBUTE_NAME”的分支上选择版本,其中包含“ aValue”。
这意味着您需要更改旧分支上的属性值,将其放在新分支上,cleartool setcs再次''您的视图,并且您应该具有基于新版本选择的新内容。
不是很直接,但它可以工作,除了 mkbranch 部分(需要固定名称)。
关于GeekCyclist 的回答,有几点评论:
包含通用配置规范的解决方案适用于 Base ClearCase 解决方案,但是:
如果您需要一个“环境”(即一个“视图”或工作区)和一个可变内容(取决于不同的分支),您需要定义一个指向不同视图的符号链接(或 windows subst)(每个视图都有他们自己的配置规范)
这样,您只需更改链接(或替换的路径)即可更改与给定固定路径关联的配置规范。
自从我在 ClearCase 工作(我们切换到 Subversion)已经有一段时间了,但如果我没记错的话,没有办法在 ClearCase 本地执行此操作。
您可以使用或编写一个脚本生成器来创建您的规范文件,然后将其包含在实际规范中:
element * CHECKEDOUT
include scripted_file_output
然后运行
cleartool setcs -current
这种方法的问题在于,我认为无论何时更改 MY_BRANCH 的值,都需要重新生成包含规范,并且 cleartool setcs 会运行。