【问题标题】:Clearcase: moving a sub branch to a main branchClearcase:将子分支移动到主分支
【发布时间】:2012-10-04 04:28:56
【问题描述】:

在明确的情况下,我开始在一个名为 main/release4/release5 的分支上工作。在我开始工作后,release4 被合并到 main.js 中。我的同事开始在 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

这是我的同事在将第 4 版与主线合并后开始使用的配置规范

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

【问题讨论】:

    标签: clearcase


    【解决方案1】:

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

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

    为确保从 release4 开始的所有文件都合并到 main 中,请在合并后立即在 main/LATESTall 元素上添加标签(最好使用 snapshot 视图用于所述合并),然后使用如下配置规范:

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

    fixed标签开始分支比从/main/LATEST开始更安全(可以随时看到新版本)


    OPGregory Peckcmets:

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

    “三个点”语法起作用的原因(如“clearcase latest version of a file on a particular branch”所示)是某些版本的分支从 release4 分支开始,而其他版本则从 main 开始。

    使用.../release5/LATEST,无论release5 是从哪个分支开始,都选择release5LATEST

    【讨论】:

    • 使用.../release5/LATEST 修复它!谢谢您的帮助。 :)
    • @GregoryPeck 非常好。我已经编辑了答案以解释为什么这种语法有效。
    猜你喜欢
    • 2013-11-14
    • 2022-11-25
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    相关资源
    最近更新 更多