Clearcase:将子分支移动到主分支



在clearcase中,我开始处理一个名为main/release4/release5的分支。在我开始工作后,release4被合并到main中。我的同事们开始了main/release5的工作。我是否可以将我的main/release4/release5工作转移到main/release5

到目前为止,我已经尝试过从main/release4/release5合并到main/release5,但没有成功。文件保留在main/release4/release5上。

版本树中的可视化示例:

main
|   
|     release 4
|     /       
main        release 5
              
release 5      *move files from here
 
*to here

这是我使用的原始配置规范。

element * CHECKEDOUT
element - directory * /main/LATEST
element * /main/release4/release5/LATEST
element * /main/release4/LATEST -mkbranch release5
element * /main/LATEST -mkbranch release4

以下是我的同事在将release 4与主线合并后开始的配置规范

element * CHECKEDOUT
element - directory * /main/LATEST
element * main/release5/LATEST
element * main/LATEST -mkbranch release5

那些以branchname/LATEST -mkbranch newBranch结尾的选择规则的想法是允许元素(文件或目录)从任何最新版本开始新分支,除非所述newbranch上已经有版本。

所以它是一个逐文件的机制。

为了确保从版本4开始的所有文件都合并到main中,在合并后立即在main/LATEST所有元素上贴上标签(最好使用用于所述合并的snapshot视图),然后使用配置规范,如:

element * CHECKEDOUT
element * .../release5/LATEST
element * REL4 -mkbranch release5
element * main/LATEST -mkbranch release5

固定标签启动分支比从/main/LATEST(可以随时看到新版本)启动分支更安全


OP Gregory Peck评论:

使用.../release5/LATEST修复了它!

"三点"语法之所以有效(如"特定分支上文件的clearcase最新版本"所示),是因为某些版本的分支从release4分支开始,而不是从main开始。

使用.../release5/LATEST,无论release5从哪个分支开始,都可以选择release5中的LATEST

最新更新