zoukankan      html  css  js  c++  java
  • p4中如何rollback/backout merge/integration

    原文: http://answers.perforce.com/articles/KB_Article/How-To-Rollback-An-Integration

    当我们需要将一个branch上的代码修改集成到另一个branch的时候,我们需要执行命令p4 integ + p4 resolve + p4 submit来完成,通称我们称以上的操作为一次integration或merge。

    一 rollback integration/merge

    有的时候在我们做了p4 integ 来把代码从一个branch merge到了另一个branch,但是发现有错误,或者这个merge不需要了,这时我们将需要撤销我们刚才的merge操作。 

    1)如果你只是执行了p4 integ 还没有执行p4 submit的时候,这时候只需要简单地在你的client里执行p4 revert就可以撤销merge了。

    2)如果的merge结果已经submit到了p4 server了,则考虑以下几种方法:

    第一种方法: superuser执行p4 obliterate 将merge的CL从p4 server彻底删除;

    第二种方法: 手动对merge中修改的文件恢复到前一个版本,即手动对merge修改的文件执行edit/resolve/submit;

    第三种方法: 使用p4v提供的rollback功能,将某个CL rollback,或者把某些文件rollback到先前的CL或时间或label;

    二 rollback已经提交的merge的3中方法比较

    当rollback已经提交的merge,最重要的考虑是目标文件(merge修改过的文件)是否又有新的修改。如果在merge后没有新的CL修改与merge相同的文件,使用p4 obliterate是最快速且干净的方法,如果merge修改的文件被后来的其他的CL修改了,则需要考虑使用p4v中的rollback或手动edit/resolve/submit。

    以下的三种方法都各有一些限制。

    当使用p4 obliterate的时候,虽然merge的CL的历史记录被删除了,但是如果在merge后有新的CL修改相同的文件,则被修改的文件中merge相关的修改内容不能被删除。

    当使用p4v或用以上的第二种方法手动rollback到先前的版本时,所有相关的CL的记录将不会删除。当下次从新merge的时候会遇到文件已经被integrated的问题,需要使用p4 integ -f来强制merge。

    更多详细:

    http://answers.perforce.com/articles/KB_Article/How-To-Rollback-An-Integration

    http://answers.perforce.com/articles/KB_article/Backing-Out-Submitted-Changelists

    http://answers.perforce.com/articles/KB_Article/Backing-out-a-changelist-after-multiple-subsequent-changes

    完!

  • 相关阅读:
    Beta 冲刺(1/7)
    福大软工 · BETA 版冲刺前准备(团队)
    福大软工 · 第十一次作业
    Alpha 冲刺 (8/10)
    Alpha 冲刺 (7/10)
    Alpha 冲刺 (6/10)
    个人作业——软件工程实践总结作业
    Beta 答辩总结
    Beta 冲刺 (7/7)
    Beta 冲刺 (6/7)
  • 原文地址:https://www.cnblogs.com/itech/p/3660299.html
Copyright © 2011-2022 走看看