原文: 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

完!

p4中如何rollback/backout merge/integration的更多相关文章

  1. 开发与测试整体过程中的Git分支merge流程

    开发与测试整体过程中的Git分支merge流程 Git分支merge之开发流程 首先在Gitlab上有个仓库存储着原始的项目代码,其中包含一个叫master的分支.然后可能按功能进行分配,由不同的开发 ...

  2. Hibernate中对象的三种状态以及Session类中saveOrUpdate方法与merge方法的区别

    首先,用一张图说明一个对象,在Hibernate中,在调用了不同方法之后对象所处的不同状态 在Hibernate中,一个对象的状态可以被分为如图所示的三种 Transient:瞬时对象,该对象在数据库 ...

  3. SQLServer 2008中SQL增强之三 Merge(在一条语句中使用

    SQLServer 2008中SQL增强之三 Merge(在一条语句中使用Insert,Update,Delete)   SQL Server 2008提供了一个增强的SQL命令Merge,用法参看M ...

  4. 【转】在Android布局中使用include和merge标签

    内容转自:http://fengweipeng1208.blog.163.com/blog/static/21277318020138229754135/ 在我们开发android布局时,经常会有很多 ...

  5. 【hibernate】Hibernate中save, saveOrUpdate, persist, merge, update 区别

    Hibernate Save hibernate save()方法能够保存实体到数据库,正如方法名称save这个单词所表明的意思.我们能够在事务之外调用这个方法,这也是我不喜欢使用这个方法保存数据的原 ...

  6. jdk8中map新增的merge方法介绍

    1.Map.merge方法介绍 jdk8对于许多常用的类都扩展了一些面向函数,lambda表达式,方法引用的功能,使得java面向函数编程更为方便.其中Map.merge方法就是其中一个,merge方 ...

  7. 在 Laravel 中使用图片处理库 Integration/Image

    系统需求 PHP >= 5.3 Fileinfo Extension GD Library (>=2.0) … or … Imagick PHP extension (>=6.5.7 ...

  8. 解决Git中fatal: refusing to merge unrelated histories

    原文链接: https://blog.csdn.net/wd2014610/article/details/80854807 Git的报错 在使用Git的过程中有时会出现一些问题,那么在解决了每个问题 ...

  9. 如何在WPF中引用Windows.System.Forms.Integration

    转自 http://www.cnblogs.com/sinozhang1988/archive/2012/11/28/2792804.html “未找到程序集 WindowsFormsIntegrat ...

随机推荐

  1. Android通讯:短信

    Android通讯之短信功能实现: 使用android.telephony.SmsManager对象,可以发送短信和彩信.// 构造回调函数,短信发送结束后,会发出对应的Intent请求Intent ...

  2. 【python】中文提取,判断,分词

    参考: http://www.cnblogs.com/kaituorensheng/p/3595879.html https://github.com/fxsjy/jieba 判断是否包含中文 def ...

  3. hdu1698

    /*区间更新*/#include <cstdio> #include <algorithm> using namespace std; #define lson l , m , ...

  4. pytest八:skip 跳过用例

    这是一个快速指南,介绍如何在不同情况下跳过模块中的测试1.无条件地跳过模块中的所有测试:pytestmark = pytest.mark.skip("all tests still WIP& ...

  5. Kafka动态增加Topic的副本

    一.kafka的副本机制 由于Producer和Consumer都只会与Leader角色的分区副本相连,所以kafka需要以集群的组织形式提供主题下的消息高可用.kafka支持主备复制,所以消息具备高 ...

  6. WebService:CXF-SPRING 读书笔记

    WEBSERVICE是给第三方提供一个接口,可以方便的与不同平台的系统进行通信,当然咯,这个只是我们通常运用到的最主要的作用,还有其他作用,见BAIDU知道.一个WEBSERVICE简单实例分为以下几 ...

  7. IntelliJ IDEA快捷键:Ctrl+Alt+B

    To navigate to the implementation(s) of an abstract method,position the caret at its usage or its na ...

  8. hdu 1258 从n个数中找和为t的组合 (DFS)

    题意:首先给你一个t,然后是n,后面输入n个数,然后让你求的是n个数中和为t的序列总共有多少种,把他们按从左到右的顺序输出来. Sample Input4 6 4 3 2 2 1 15 3 2 1 1 ...

  9. #11 UVA 10529 Dumb Bones

    题意: 放一堆排,每放一张,有pa的概率让左边的全倒,有pb的概率让右边全倒 问在最优策略下,最少要放几张才能摆放出n张 1<=n<=1000 题解: 这题应该还是很经典的 首先是期望部分 ...

  10. [九省联考2018]一双木棋chess

    题解: 水题吧 首先很显然的是状压或者搜索 考虑一下能不能状压吧 这个东西一定是长成三角形的样子的 所以是可以状压的 相邻两位之间有几个0代表他们差几 这样最多会有2n 然后就可以转移了 由于之前对博 ...