Perforce(P4V)使用教程

1.前言

Perforce SCM System是一款构建于可伸缩客户/服务器结构之上的软件配置管理工具。仅仅应用TCP/IP,开发人员就能够通过多种Perforce客户端(几种平台的GUI、WEB、或命令行)访问Perforce服务器。Perforce能够被快速和容易地部署,即使对大型或分布式的站点,也只要求最小限度的管理。Perforce可以使用在50多个操作系统中,它包括版本控制、工作空间管理、变更处理和一个强大的分支模型。这里介绍的P4V是perforce的一种可以跨平台使用的客户端。

2.操作区

操作区中的内容主要由如下的几种工作区组成。 
       1.Pending changelists 工作区 :这里显示当前用户正在修改的文件和其他开发者正在修改的文件。当然,你只需要关心你自己的project即可。当你执行:Mark for Add,check out等操作时,这些信息就会显示在changlist列表中显示,并由不同的图标显示其状态。如果你修改完成后,执行submit就可提交更新文件;但也可以执行revert放弃所作的修改。 
       1.Submitted changelists 工作区 :显示了近期所有项目组成员对项目所做的操作。从中可以获得如:changlist号、修改时间、修改文件的内容、修改原因及修改人等信息。 
       3. Workspace工作区 :在该工作区中可显示所有连接在服务器上的客户端工作空间。 在此工作区内可以执行创建、编辑修改、删除用户工作空间等操作。(前提是有执行的权限。) 
       4. History工作区 :查看指定文件的变更历史信息。

3.文件修改

1.1.每次要修改文件的时候,需要先check out 到本地,然后进行修改。 此时被Check Out出来的文件左上方有个红色钩标志,表明该文件已经成功的被您Check Out出来了。如果是文件的右上方有个蓝色钩标志,说明该文件已经被别人Check Out出来了。由于Perforce支持并行操作,所以您仍可以将别人已经Check Out的文件再次Check Out到您本机进行修改。 
       1.2.双击打开已经Check Out出来的文件,对其进行修改。 修改完毕后,右键点击该文件,选择Submit,写下变更列表的描述。 
       1.3.点击Submit,文件提交到服务器,增加了一个新版本。 在这里需要提醒大家的是,如果将某个文件Check Out出来后,并没有做任何修改,这时请不要做Submit操作,而是点击右键选择Revert If Unchanged,这样提交后就不会增加该文件的版本数了,否则服务器将会为一个没有做任何修改的文件增加一个版本。 
       建议在每次修改后思考:为什么要做这些修改?如果所作的修改是没有意义的,那么,建议不要将这个文件提交(submit),而是Revert你所做的修改。

4.合并文件

合并操作主要用来解决并行开发过程中变更产生的冲突。 (Check out --> Get latest --> Resove --> Accept Merge)
       例如,当有多人需要对同一个文件同时执行Check Out操作时,在Submit该文件时,Perforce可能会报错。现举例如下:有A、B两人需要同时对CallKeep.cpp文件执行Check Out操作。 此时可以看到文件CallKeep.cpp的左上角和右上角分别有钩,这说明该文件正在被至少两个人执行Check Out操作。由于Perforce支持并行操作,所以A和B在执行Check Out时不会发生冲突,但Submit该文件时就可能报错了。第一个执行Submit操作的人不会出现问题,例如A可以正常提交,但如果B修改的内容和A修改的相冲突,则B执行Submit时报错,并且会提示服务器上已经有最新的版本了(即A刚刚提交的版本) 。这时,选中该文件,右键点击,选择Resolve操作。 Perforce提供了三种自动解决方案,分别是“Accept Merged”、“Accept Yours”和“Accept Theirs”。当然,你也可以查看和别人冲突的地方在哪里,进行手动解决冲突。点击Run Merge Tool,显示界面从左到右。 
区域1:显示的是A提交版本中的内容,即目前服务器上的最新版本。 
区域2:显示的是A和B同时Check out文件CallKeep.cpp时,当时服务器上最新版本内容,也就是A、 
B修改的基础版本。 
区域3:显示的是B自己修改的文件内容。 
区域4:显示了三个版本所有冲突的地方,B可以在此基础上对文件做修改,给出解决方案。 
选择红线框中的按钮来决定所保留的代码。解决完冲突后再Submit即可。

5.查询文件历史版本

1.1. 如果想要查询某个文件的任何一个历史版本,右键点击这个文件,选择Get Revision。 如果不能Get下來,需要勾選Force Operation。
       1.2. 写下需要查看的历史版本号,然后点击Get Revision。此时Perforce为您取出任何一个你想要的历史版本。

6.比较两个文件的区别

比较操作主要是用来查看某个文件到底做了哪些修改:从中你可以看出添加了什么,删除了什么等等。 
       1.1. 比较两个不同文件或一个文件不同版本之间的区别。右键点击需要比较的文件,选择Diff Against命令

7.同步服务器上文件

如果您在服务器上找到自己所需要的文件,并希望把这些文件同步到本机,这时就需要首先选择好工作区Workspace,然后右键点击需要下载的文件夹,选中Get Lastest Revision命令,就可以完成。

8.對比服務器與本地文件的差異

選擇需要對比的目錄,選擇Reconcile Offline Work...

9. P4常用命令

命令 解释
p4 diff -se … 查看当前目录下的编辑文件
p4 filelog file 查看file的日志
p4 changes -m 5 file 查看file最近5条日志
p4 diff file#1 file与其库中版本#1
p4 reconcile … 离线工作之后,p4 reconcile可查看文件增删改状态,p4 changelist可再次查看
p4 have file 查看最新版本
p4 reopen -c id file 指定文件重新加入指定change list, 此命名前先使用p4 change生成CL号
p4 opened 查看change list中已打开未上传的文件
p4 changes -m1 …#have 查看本地库当前CL号
p4 sync -f …@CL 强制覆盖还本地文件
p4 revert -c default //… Revert every file open in the default changelist to its pre-opened state.
p4 revert -n ...  #恢复所有打开却没提交的文件
p4 shelve -c CL CL上传到shelve
p4 shelve -d -c CL 上传前需删除shelve
p4 unshelve -s CL unshelve到当前client
p4 shelve -f -c CL 有新文件加入已shelved的CL后,需要用-f重新提交
p4 describe -s CL 查看对应CL提交log
p4 submit -d "some description" file 提交(check in)已经编辑好的文件
p4 cstat ... 查看当前worspace的所有的CL,已下载的和未下载的

1)p4 opened
2)p4 change

3)p4 submit -c CL

4)p4 opened

如果 edit 了多个文件,eg: a,b,c,d. 但是只需要上传其中的部分文件, eg: a,b.
1)显示 a b c d 四个文件被编辑
2)通过p4 change,得到一个change list (eg:116119), 并自动生成打开一个 vim 文件,编辑文件,把不需要的文件 c d 从vim里去掉,添加description, 保存并退出。
3)CL为刚才得到的change list, 比如 116119, 我需要输入命令p4 submit -c 116119, 就会把需要上传的 a b 上传
4)此时会发现, 只有c d 还在, a b 已经被上传
斜体部分为变量
file   : file name
CL :  change number

[P4V]Perforce(P4V)使用教程相关推荐

  1. perforce p4v linux,Perforce p4v下载

    perforce p4v是款简单实用的版本控制工具:它可以快速的帮助用户进行服务器系统的管理,也支持对配置进行快速的选择,让您轻松的即可完成版本的控制:这款软件的附件包里面,还附带了注册机,可以快速的 ...

  2. VS2017安装P4VS插件 设置连接到Perforce P4V

    安装P4VS (1)首先下载P4VS 下载地址:https://www.perforce.com/zh-hans/perforce/product/20 选择好对应的VS版本,点击下载. (2)关闭本 ...

  3. Perforce使用中文教程

    P4递交建议流程: 1. p4 sync 2. 覆盖或者改动local文件 3. p4 delete or 直接delete 废弃的文件 4. p4 add: 增加新文件到depot 5. p4 di ...

  4. [P4V]Perforce常用命令总结

    Perforce(P4)常用命令总结 一.P4V环境变量配置(在你的.tcshrc中添加): P4USER = <username> P4PORT = <ip> P4CLIEN ...

  5. Perforce使用中文教程: p4 client

    p4 client 摘要 创建或者编辑一个客户工作区的定义和它的视图. 语法 p4 [g-opts] client [-f -t template] [clientname] p4 [g-opts] ...

  6. perforce(p4) 使用

    P4递交建议流程: 1. p4 sync 2. 覆盖或者改动local文件 3. p4 delete or 直接delete 废弃的文件 4. p4 add: 增加新文件到depot 5. p4 di ...

  7. 浅入浅出——我的perforce客户端教程之二(或:p4v使用教程)

    我假设你是一个对perforce完全陌生的新用户,然后你也许会奇怪为什么同样的概念要用不同的两个名称,实际上除了可视的客户端,perforce当然也有功能强大的命令行,好吧也许你觉得有界面才是更高级的 ...

  8. 一款好的游戏开发IDE是什么样子?Rider使用体验和建议

    这是[游戏开发那些事]第59篇原创 作为一名入行多年的游戏开发者,尤其是虚幻引擎的重度用户,我在IDE工具的选择上真的很难有VisualStudio以外的其他选项.不过自从 2017年JetBrain ...

  9. Asset Server 整理

    资源服务器指南 Asset Server Guide Date:2012-11-23 11:00 Unity Asset Server Overview Unity资源服务器概述 The Unity ...

最新文章

  1. 读懂深度迁移学习,看这文就够了 | 赠书
  2. 基于生成对抗网络(GAN)的人脸变形(附链接) | CSDN博文精选
  3. php websocket
  4. html树状图右侧_如何在 Tableau 中创建控制图?
  5. python open文件安全隐患_python的其他安全隐患
  6. Xilinx+AWS F1+VP9带来30倍实时转码性能提升
  7. Log4j的扩展-支持设置最大日志数量的DailyRollingFileAppender
  8. SQL里变量的声明以及常用函数举例
  9. 显卡风扇不转电脑黑屏_笔记本电脑开不了机是什么原因及常见解决办法
  10. android uses-permission 配置详解
  11. JAVA格式化输出浮点数:空格,位数
  12. 前端数据可视化echarts.js使用指南
  13. 【CarMaker学习笔记】CarMaker Python API 接口使用方法
  14. Java反编译工具 luyten 0.5.3
  15. android 照片加水印,Android实现为图片添加水印
  16. 隐蔽的大数据杀熟,“百亿补贴”会员竟比非会员贴得少?
  17. MIMO技术杂谈(三):知己知彼,百战不殆--信道信息的获取和应用
  18. n个单词输入次数 c语言,C语言问题,从键盘输入n个英语单词.输入格式为n,w1,w2,w3…wn,其中n表示随后输入的英语...
  19. 少儿计算机基础知识,学会这三个小知识,轻松入门少儿编程
  20. 远程计算机时能看吗,QQ远程控制对方电脑上的所有东西都能看见吗 – 手机爱问...

热门文章

  1. 女生到底还做java还是前端_女孩子想转行的话学前端好还是java,哪个更有发展?...
  2. mysql8删除root用户,Window下如何恢复被删除的Mysql8.0.17 Root账户及密码
  3. 阿里直播在线人数只统计rtmp格式的播放源
  4. shoug oracle,SHOUG User Group Young Expert Program
  5. openGL 纹理使用
  6. 【转贴】龙芯生态产品和解决方案巡展(第二篇)——笔记本电脑
  7. Linux(CentOS) 安装JDK
  8. 笔记本上的小键盘计算机怎样用,电脑怎么调出小键盘打字?电脑调出小键盘打字的方法...
  9. Elasticsearch之Mapping设置详解
  10. 移动应用程序开发_移动应用程序开发生命周期-从开发到应用程序商店的应用程序之旅