我对ClearCase有一个小问题。请帮帮我!配置规范什么时候开始起作用?当我单击“签出”或“签入”时?我有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
。但为什么??? 最佳答案
配置规范将在每次更新,签出和签入时应用规则(但并非您认为的那样)。
签入时,新版本将在已签出的分支中创建(此处为 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
上)此配置规范将确保所有新版本(在首次对
test.c
签入branch1
之后)在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/1
:branch2
上没有创建任何版本,因此element * /main/LATEST
是唯一可以应用的规则。关于clearcase - ClearCase中的配置规范,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16000958/