Perforce是目前比较流行的集中式的源代码管理工具,在很多的欧美跨国公司被广泛的使用。他能够运行于Windows,Linux,Mac几乎所有的平台,支持客户端,命令行,IDE集成,操作系统shell,API等多种访问方式。而且他还能够很好地支持大型规模的软件公司的员工同时访问,能够很好地支持跨国的分布式团队的开发。对perforce server的管理也很方便。例如google就在使用perforce来管理源码。

一 Perforce 客户端入门

* 客户端我们可以使用p4命令行,也可以使用基于UI的p4v,同时客户端还带有p4merge用来帮助用户执行diff和merge。

* 客户端我们还可以使用IDE的plugin来在IDE中方便地执行所有的perforce操作,也可以在我们的自动化脚本中调用基于各种语言的API来执行Perforce操作。

* 基本的登录信息,p4v中为server,user,workspace,server表示p4server的地址,user表示user id,workspace表示server与本地的目录的映射关系,在p4命令中,对应的环境变量为p4server,p4user,p4client。

* client表示server与本地的目录的映射,在p4v中为new workspaces... , 对应的p4的命令为p4 client。

* 增加文件在p4v中为mark for add,对应的p4命令为p4 add。

* 删除文件在p4v中为mark for delete,对应的p4命令为p4 delete。

* 修改文件在p4v中为check out,对应的p4命令为p4 edit。

* 提交修改在p4v中为submit,对应的p4命令为p4 submit。

* 同步最新的代码到本地在p4v中为get latest reversion / get reversion ... ,对应的p4命令为p4 sync。

* 每次提交都会对应一个change list,用来唯一标识一次提交。

* 在提交前撤销修改,p4v中为revert unchanged files / revert files ...,对应的p4的命令为p4 revert。

* 在提交后撤销, p4v中为Rollback... ,对应的p4命令其实就是p4 sync + p4 submit。

* 要查看文件或文件夹的版本,在p4v中为file history / folder history, 对应的p4的命令为p4 filelog。

* 要修改文件或移动文件目录,在p4v中为rename / move ..., 对应的p4的命令为p4 move。

* 创建branch需要在p4v中new branch mapping + integrate using branch maping ...,对应的p4命令为p4 branch + p4 integrate。

* merge,在p4v中为resolve files,对应的p4的命令为p4 resolve。

* p4的命令p4 copy,其实是等于p4 integrate + p4 resolve -at。

* 创建label需要在p4v中new label... + label...,对应的p4命令为p4 label + p4 tag。

* 比较client的最新与本地的不同,p4v中为diff against havereversion。 对应的p4的命令为p4 diff。

* 比较任意的两个文件的不同个,p4v中为diff against... ,对应的p4的命令为p4 diff2。

* 查看目录下的文件,p4v中为files in folder,对应的p4的命令为p4 files。

* p4命令p4 info 或 p4 set查看当前的p4 server的和当前client的信息。

* 查看文件的内容对应的p4命令为p4 print。

* p4命令p4 where用来查看一个文件在server,client和本地的路径。

二 Perforce server入门

* Server的运行程序为p4d(如果作为service运行,需要改为p4s)。

* 为了支持分布式团队的开发,需要使用proxy,proxy的运行程序为p4p(如果作为service运行,需要改为p4ps)。

* 可以使用p4server自带的svcinst来在windows上同时部署多个server或proxy。

* p4server在linux上可以部署为daemon(service),或者也可以部署为xinetd的服务来运行。

* 对server的管理可以使用p4admin的UI的工具来完成, 或者使用p4 命令 p4 user + p4 group + p4 protect来进行权限的管理,使用p4 monitor来监视server。

* 使用p4d命令p4d -jc / jr来备份和恢复server。

* 也可以使用p4的命令p4 admin来进行部分的管理,例如停止server,备份server。

* 可以使用p4的命令p4 replicate 或 p4 pull来创建 replicated server,作为热备份server用来实现灾难恢复,或者作为offline server用来减少备份时mainserver的停机时间。

* replicated server + p4broker来实现 p4server的高可用性,或作为readonly server来减少mainserver的负载。

完!

转载于:https://www.cnblogs.com/itech/archive/2011/08/26/2152807.html

[SCM]源码管理 - perforce快速入门相关推荐

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

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

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

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

  3. [P4]源码管理 - perforce(p4)的分支与集成

    源码管理 - perforce(p4)的分支与集成 摘要:p4的分支创建和集成过程主要包含4个步骤: (1) 使用'p4 branch'创建branch spec: (2)使用'p4 integrat ...

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

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

  5. 达达php源码,【达达前端】Ajax实战项目源码讲解(快速入门的实例)Github源码...

    作者 | Jeskson 来源 | 达达前端小酒馆 源码地址: 什么是Ajax技术?实战中的运用ajax技术,了解前后端交互的方式,了解移动端的模式,了解H5的新技术,了解CSS3的使用,和JQuer ...

  6. [SCM]源码管理 - SVN的备份和还原

    转自: http://spiritfrog.iteye.com/blog/448578 + http://magnet2008.iteye.com/blog/586578 备份策略 ========= ...

  7. [SCM]源码管理 - SVN:externals

    svn的外部定义svn:externals 转自:http://blog.csdn.net/jaconey/archive/2008/05/15/2448986.aspx 解决你的外部依赖 -- sv ...

  8. app商城源码_海量的SpringBoot和SSM项目【附带源码+视频教程】快速成为全栈

    为了帮助更多的小伙伴进行项目的锻炼,孟哥整理较多的实战项目,包括SSM.Springboot.Springcloud.小程序等. 各种项目还在不断的更新中--仅限制学习使用,若有侵权,请联系删除. 点 ...

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

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

最新文章

  1. kd树的根节点_kd树总结
  2. Multilink ppp多链接PPP协议的配置
  3. 为什么要使用PreparedStatement
  4. Every Woman is beautiful
  5. Le-net网络总结
  6. PAT乙级(1032 挖掘机技术哪家强 )
  7. Mysql5.6.x版本半同步主从复制的开启方法
  8. 为什么字节跳动、腾讯、阿里都在用 Python??
  9. Sublime Text3 注册码激活码
  10. cmd中,执行java命令与javac命令的区别
  11. mysql的驱动jar包_各版本MySQL数据库驱动程序jar包大全(java连接mysql驱动jar包)
  12. HTML恶搞代码 无限弹窗(超简短)
  13. 运筹学 美国人在计算机上实现的四,运筹学试卷及答案.
  14. 小程序:选举投票问题未知行数输入问题(含代码)
  15. DB2JAVIT RC 9505
  16. (Adventure项目)自行车业务数据分析报告(三)
  17. 模拟退火算法(Simulated Annealing,SA)的全面讲解及python实现
  18. PSP1000/2000/3000 PSPgo全主机介绍(1)
  19. 2018总结-股权众筹和P2P网贷
  20. 6款超强国外免费网盘推荐

热门文章

  1. LeetCode 2044. 统计按位或能得到最大值的子集数目(状态压缩DP)
  2. LeetCode 735. 行星碰撞(栈)
  3. TCP程序流程及服务器客户端
  4. R语言第十一讲 决策树与随机森林
  5. rabbitmq使用_Spring Boot中使用RabbitMQ
  6. 如果再这么玩下去,中国的科研就没戏了
  7. 巨省显存的重计算技巧在TF、Keras中的正确打开方式
  8. 全链路压测平台(Quake)在美团中的实践
  9. 资源征集 | 2021年全国知识图谱与语义计算大会开放资源征集(Resource Track)通知...
  10. 论文浅尝 | 知识库问答中关系检测的学习表示映射