源码管理 - perforce(p4)的分支与集成

摘要:p4的分支创建和集成过程主要包含4个步骤:

(1) 使用‘p4 branch’创建branch spec;

(2)使用’p4 integrate‘来实现分支间的集成;

(3)使用‘p4 resolve’来完成冲突的合并;

(4)使用‘p4 submit’提交集成的结果。

如下为在p4v中的操作。

一、创建branch spec

如下过程创建projectA的main与2012RTM的branch spec。操作为:File --> New --> New Branch Mapping

二、创建新的分支

如下过程创建2012RTM分支!

  • 在branch spec上右键 ->integrate using this branch mapping

  • 提交集成

  • 提交后如下

三、分支间的集成

如下过程为从2012RTM 到 main的集成。

  • 在branch spec上右键 ->integrate using this branch mapping,注意选择正确的集成方向。

  • 在有冲突的文件右键->resolve (通常选择accept merged 或者run merge tool手动merge)

  • 提交合并

四、p4 integrate 和 p4 resolve的注意事项

  • p4分支的集成也支持没有branch spec的形式,如 ‘p4 integrate fromfile tofile’,如果没有使用branch spec或fromfile与tofile没有共同的base的时候需要使用-i参数来强制集成。
  • 对‘p4 integrate’使用-v参数来避免将integrate的结果自动sync到本地,但是大部分情况我们需要合并,所以需要sync到本地。
  • 对‘p4 integrate’使用-r表示与branch spec相反的方向的集成。
  • 默认地在‘p4 integrate’命令后本地workspace的文件任然为只读的,如果需要修改则必须先使用‘p4 edit’命令。
  • 对‘p4 integrate’命令使用-Dt -Ds,-Dt表示目标文件被删除了,但是源文件还在,则集成结果为源文件; -Ds表示如果源文件删除了,集成结果为任何对之前对目标文件的修改也被删除。
  • 在脚本中自动集成时,可以对‘p4 resolve’使用 -am或-as参数,差别为:
  • -am表示accept merged,具体为如果theirs与base一致,接受yours,如果yours与base一致,接受theirs如果yours和theirs都与base不同,但是yours和theirs没有冲突,接受自动merged的结果,否则如果yours和theirs也有冲突,则忽略此文件。
  • -as比-am更严谨,不管yours与theirs是否有冲突,只要yours和theirs都与base有不同就忽略此文件。
  • 在使用‘p4 resolve -am’或‘p4 resolve -as’后,可以使用‘p4 resolve -n’来参看没有自动merged忽略的文件,如果有文件没有自动merge成功,则需要手动merge,否则可以直接提交。
  • 实例 :
p4 integrate -b %branchname% -Dt -Dsp4 resolve -amp4 resolve -n p4 submit #(如果p4 resolve -n 命令检测到没有文件merge失败,则submit可以自动执行,否则需要手动merge,然后再submit)

完!

[P4]源码管理 - perforce(p4)的分支与集成相关推荐

  1. [SCM]源码管理 - perforce快速入门

    Perforce是目前比较流行的集中式的源代码管理工具,在很多的欧美跨国公司被广泛的使用.他能够运行于Windows,Linux,Mac几乎所有的平台,支持客户端,命令行,IDE集成,操作系统shel ...

  2. [SCM]源码管理 - perforce的集中授权+分布式团队+负载均衡+可扩展性+高可用性+灾难恢复...

    本文主要讨论perforce的 * perforce集中授权 * perforce对分布式团队的支持 * perforce的负载均衡​和可扩展性 * perforce高可用性和灾难恢复 一 perfo ...

  3. 【转】Visual Studio团队资源管理器 Git 源码管理工具简单入门

    1.1 环境 Visual Studio + GitLab (其他版本同理) 1.2 Git操作过程图解 1.3 常见名词解释 拉取(Pull):将远程版本库合并到本地版本库,相当于(Fetch+Me ...

  4. 从漫画看源码管理方式

    一直以来我都比较在意源码的管理,怎么说也是自己辛苦写的东西,改得又很频繁,没有个好方法好工具管理起来还真是不放心. 最近几年主要是用分布式版本控制工具Mercurial(HG),个人觉得还是挺好用的. ...

  5. java代码管理工具_java源码管理与版本控制工具,图文详解

    近些年社会科学技术水平的发展越来越快速了,这也促进了人们对于新技术新知识的学习.尤其是java的应用也越来越广泛.今天就来为大家介绍一下,java源码管理与版本控制工具,一起来了解一下吧. java项 ...

  6. Visual studio 2005如何实现源码管理

    转自CSDN Visual studio 2005如何实现源码管理(Visual Studio .Net团队开发) 目录: 〇. 摘要 一. 开发前的准备 二. 创建空的SourceSafe数据库 三 ...

  7. 配置源码管理工具(2)

    源码管理是开发中最重要的事情之一,在vs.net里我们通常采用vss进行版本控制,在Eclipse里看帖子说用svn的比例很大,和IDE的集成性也很好. 1:服务器部署 下载地址是:http://su ...

  8. [SCM]源码管理 - SVN Server

    一 SVN命令行简介 1)命令行方式的SVN Server和Client下载: http://www.collab.net/downloads/subversion/ 2)设置path路径:set p ...

  9. 0918 iOS10兼容/iOS系统过高或过低配置包/混合引擎的在线视频连麦互动直播/源码管理工具/Xcode8插件升级/导航栏渐变

    1 兼容iOS 10 资料整理笔记 http://www.jianshu.com/p/42e506998082 iOS developerDiskImage 这是由于真机系统过高或者过低,Xcode中 ...

最新文章

  1. ping 攻击 Linux,Linux 环境实现ping攻击
  2. C语言再学习 -- 关闭/启动
  3. PAT乙类之1011 A+B 和 C
  4. DevOps 在移动应用程序开发中扮演什么角色?
  5. 02-neo4j的基本命令
  6. 一人网站所有的 ip地址_咸宁网站建设-网站的主要特征
  7. linux如何检查进程,如何在Linux中检查进程的执行时间
  8. 生日快乐编程代码_「世界上最好的编程语言」,刚刚度过了25周岁生日
  9. 笔杆子被领导倚重的核心竞争力是什么?
  10. 【工具】多人在线协同编辑文档软件
  11. ⅰcp经济模型_新经济地理学基本模型及其扩展综述_刘亚军
  12. Python五角星画法
  13. 2019年软件QA与测试八大关键词
  14. 36氪2022年Q3总收入同比增长两位数超预期,连续第四个季度盈利,广告收入同比增长20%
  15. IC验证之测试点分解
  16. 先學30天jQuery再說之属性操作 - .contains() 方法和 :contains 选择器(par7)
  17. 深度学习入门笔记(十):正则化
  18. 计算机图像学基础课程设计,计算机图形学课程设计
  19. 翻转课堂,让传统的以教为中心变成以学中心
  20. 谷歌地球中国服务正式关闭,国产天地图完全替代谷歌地球?

热门文章

  1. red5 FAQ - 刚接触red5的可以看看
  2. Modra Pharmaceuticals于2021 ASCO GU年会公布其转移性前列腺癌IIb期临床试验初步数据
  3. 想编程,是勤奋自学还是去培训班学习?
  4. 李宏毅2020机器学习深度学习 笔记1(理论上持续更新中)
  5. ZipEntry实现文件解压缩与目录解压缩
  6. 动物miRNA靶基因本地预测(三)—— 靶基因预测与结果分析
  7. 遍历map java_Java中怎么遍历map中value值
  8. msysGit与TortoiseGit使用入门
  9. IDEA SpringBoot 同一个模块启动多个服务(实例)
  10. selenium+python:元素定位的八种方式