在ClearCase中配置规范

时间:2013-04-14 15:46:12

标签: clearcase config cleartool specifications

我对ClearCase提出了一些小问题。请帮帮我!配置规范什么时候开始工作?当我点击CHECK OUT或CHECK IN?我有test.c,我有配置规范

element * CHECKEDOUT
element * .../branch_1/LATEST
element * /main/LATEST -mkbranch branch_1

然后我修改test.c,然后我更改配置规范:

element * CHECKEDOUT
element * .../branch_2/LATEST
element * /main/LATEST -mkbranch branch_2

然后我签入test.c并且我已经创建了/main/branch_1/1。但为什么???

1 个答案:

答案 0 :(得分:3)

配置规范将在每次更新和结帐时以及签到时应用规则(但不是您认为的那样)。

在签到时,新版本将在已检出的分支中创建(此处 branch_1 )。
新配置规范可能不会选择新版本,但是已经检出它的分支不会被所述新配置规范更改。

branch1 branch2 {} {}已经已经已经检出test.c中的branch1并未改变任何内容。它将在branch_1中签入。

现在您将在branch1签入test.c时创建一个版本(即使使用您的第二个配置规范),您需要意识到所有未来的结帐/签到都将在同一个分支上进行对于test.c,因为:

  • 规则element * branch_1/LATEST将新版本保留在该分支上
  • 规则element * /main/LATEST -mkbranch branch_2仅对从main检出的版本有效(并且test.c不再在/main上,它在branch1上:/main/branch1)< / LI>

此配置规范将确保所有新版本(在test.cbranch1的第一次签到之后)在branch2上完成:

element * CHECKEDOUT
element * .../branch_2/LATEST
element * ../branch_1/LATEST  -mkbranch branch_2
element * /main/LATEST -mkbranch branch_2

规则的顺序很重要,因为可以应用的第一个“胜利”(即忽略了英雄)。
请参阅“Config Spec to display labeled files from 2 branches”中的配置规范的具体示例。


请注意,在test.c首次签到后,您将获得在branch1上创建的新版本,如前所述。

然而,您的第二个配置规范将选择/main/1,而不是/main/branch1/1

这是因为您的第二个配置规范中的规则不正确:

element * branch_1/LATEST

这个会选择正确的版本:

element * .../branch_1/LATEST

但如果您的第二个配置规范没有关于branch1的规则,test.c仍将被选为/main/1branch2上没有创建版本,因此{{ 1}}是可以应用的唯一规则。