ClearCase中的配置规范
我对ClearCase有个小问题。请帮帮我!配置规范什么时候开始工作?当我单击“签出”或“签入”时?我有ClearCase中的配置规范,clearcase,config,cleartool,specifications,Clearcase,Config,Cleartool,Specifications,我对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/LATE
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
element * branch_1/LATEST
然后我签入
test.c
,我已经创建了/main/branch\u 1/1
。但是为什么呢?配置规范将在每次更新、签出和签入时应用这些规则(但不像您认为的那样)
签入时,将在已签出的分支中创建新版本(此处分支1
)。新配置规范可能不会选择该新版本,但签出该版本的分支不会被新配置规范更改 在
branch2
中更改branch1
,而test.c
已签出(在branch1
中),不会更改任何内容。它将在分支_1
中签入
现在,您将在签入test.c
时在branch1
上创建一个版本(即使使用第二个配置规范),您需要意识到,将来所有签出/签入都将在test.c
的同一分支上进行,因为:
- 规则
将保留该分支上的新版本元素*branch_1/LATEST
- 规则
仅对从main签出的版本有效(test.c不再在元素*/main/LATEST-mkbranch branch_2
上,而是在/main
上:branch1
)/main/branch1
branch1
上首次签入test.c
后)都在branch2
上完成:
element * CHECKEDOUT
element * .../branch_2/LATEST
element * ../branch_1/LATEST -mkbranch branch_2
element * /main/LATEST -mkbranch branch_2
规则的顺序很重要,因为第一个可以应用的规则“获胜”(即忽略波特规则)。请参见“”中的配置规范的具体示例
请注意,在第一次签入
test.c
之后,您将获得一个在branch1
上创建的新版本,如前所述
然而,您的第二个配置规范将选择/main/1
,而不是/main/branch1/1
这是因为第二个配置规范中的规则不正确:
element * CHECKEDOUT
element * .../branch_2/LATEST
element * /main/LATEST -mkbranch branch_2
element * branch_1/LATEST
这将选择正确的版本:
element * .../branch_1/LATEST
但是如果您的第二个配置规范没有关于
branch1
的规则,test.c
仍将被选择为/main/1
:没有在branch2
上创建版本,因此元素*/main/LATEST
是唯一可以应用的规则。非常感谢!我是一个绝对的初学者,这对我来说很难。我不理解“在branch2中更改branch1,而test.c已经签出(在branch1中)不会更改任何内容。它将在branch_1中签入。”。当我再次签出test.c时,将在视图中选择什么?@所有第二次签出将根据当前配置规范(您已修改)进行,因此它仍然是branch1
(因为只有最新的main才会在branch2
中签出)。如果要在第二次签出时查看branch2,则需要一个附加的选择规则:元素*!非常感谢。我在ClearCase中执行这些操作,结果是:创建了/main/branch_1/1,但选择了/main/1。我需要帮助)我理解(谢谢!!!:)创建的/main/branch_1/1,但是为什么我在树/main/1中看到“保留”?@你的意思是在第二次结账时?请注意,保留是在没有编号的版本上设置的。因此,在您的例子中,一个版本是从/main/1
创建的,而不是从/main/1
本身创建的。