原文: 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. Jenkins构建次数设置

    Build after other projects are built:在其他项目触发的时候触发,里面有分为三种情况,也就是其他项目构建成功.失败.或者不稳定的时候触发项目: Poll SCM:定时 ...

  2. selenium python2.7安装配置

    1:安装python python2.7版本(最新的python版本是3.4,但用户体验没有2.7版本的好,我们选择用2.7版本) 下载地址:https://www.python.org/downlo ...

  3. PHP获取网卡的MAC地址原码;目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址

    声明转换于其它博客当中的. <?php /** 获取网卡的MAC地址原码:目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址 **/ class GetMacAddr{ var $ ...

  4. shell expect权威指南和实战

    一.概述 我们通过Shell可以实现简单的控制流功能,如:循环.判断等.但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能.而expec ...

  5. compile php with openssl on mac osx error 填坑

    从源码手动编译 PHP 时出现如下错误:           Default   1 2 3 4 5 6 7 8 9 10 11 12 13 14 Undefined symbols for arch ...

  6. Laravel View Composer - 当 include 一个模板时,自动获取其所需的变量

    网站中,许多页面的侧边栏是相同的.例如: 分类列表页,与文章详情页的侧边栏都包含 最新文章 最新评论 统计计数 这些相同的侧边栏数据也是动态的,并不是固定的. 在每个 controller 里都写一遍 ...

  7. 数论-质数 poj2689,阶乘分解,求阶乘的尾零hdu1124, 求尾零为x的最小阶乘

    /* 要求出[1,R]之间的质数会超时,但是要判断[L,R]之间的数是否是素数却不用筛到R 因为要一个合数n的最大质因子不会超过sqrt(n) 所以只要将[2,sqrt(R)]之间的素数筛出来,再用这 ...

  8. springMVC源码分析--页面跳转RedirectView(三)

    之前两篇博客springMVC源码分析--视图View(一)和springMVC源码分析--视图AbstractView和InternalResourceView(二)中我们已经简单的介绍了View相 ...

  9. Web开发.net framework 类库中必须掌握的命名空间(或者类)【转】

    Web开发常用命名空间和类. System.Collections //命名空间包含接口和类,这些接口和类定义各种对象(如列表.队列.位数组.哈希表和字典)的集合.System.Collections ...

  10. P1865 A % B Problem 素数筛

    题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格式: 对于每次询问输出个数 t,如l或r∉[1,m]输出 Cros ...