3

我对 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,我有: created /main/branch_1/1。但为什么???

4

1 回答 1

3

配置规范将在每次更新、结帐和签入时应用规则(但不是您想象的那样)。

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

branch1在已经出 (in )branch2时更改不会改变任何内容。它将被签入。test.cbranch1branch_1

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

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

此配置规范将确保所有新版本(在第一次签入test.con之后branch1)都在以下时间完成branch2

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

规则的顺序很重要,因为可以应用的第一个“获胜”(即忽略其他规则)。请参阅“配置规范以显示来自 2 个分支的标记文件
”中的配置规范的具体示例。


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

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

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

element * branch_1/LATEST

这将选择正确的版本:

element * .../branch_1/LATEST

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

于 2013-04-14T15:55:57.753 回答