跳至主要內容

Perfore(P4) 教程

西风逍遥游大约 4 分钟

Perfore(P4) 教程

P4 作为一款商业代码管理工具,受到了不少企业的欢迎。而学会使用这个工具往往是很多新员工的最痛苦的部分。

本文就简单梳理一下P4的核心概念以及如何正确使用这个工具。

P4 是集中管理代码的版本管理工具,所有代码都统一存放于公司的若干代码服务器节点上,而用户,需要创建一个client来访问代码,登录后,团队其他成员也能看到哪些文件正在被哪些人编辑中,更加方便团队的实时协作。

一般一个用户有两种设置p4的方法:

  1. P4环境变量

P4环境变量主要需要设置: $P4PORT 这个是你要访问的实例的名字,还有 P4CLIENT 这是你client客户端的名字

  1. .p4config

使用配置文件,只需要设置一个环境变量 $P4CONFIG.p4config 使用配置文件的好处是,你可以把这个配置文件放到workspace里,不同的workspace的不同配置互不影响,可以每个项目设置独立的client(这也是推荐做法),非常方便

编辑client

输入p4 client 就会自动弹出一个客户端配置文件的编辑器,重要的配置有以下几个:

  • Root: 代码仓库的位置
  • View: 一组目录映射的配置,由于公司的项目都很大,每个人只需要关心一小部分代码,你可以只签出你关心的几个项目

同步代码

同步所有代码很简单

p4 sync //...

当然你直接 p4 sync 是同步当前目录

代码修改

默认签出的代码全部都是readonly的。如果你想修改一个文件,必须先改变其状态:

p4 edit <file>

这个edit指令会告诉服务器,你现在要开始编辑这个文件了,这个状态是能被公司其他人看到的,那么别人看你在编辑这个文件后,就会考虑是不是等你这边更新完后他们再改。这样可以避免一些提交时的冲突。

添加和删除文件也有专门的指令p4 addp4 delete

创建changelist

开始工作后,基本上就要创建一个个的changelist。p4是基于修改的版本管理器,你只能通过创建一个个changelist来修改代码。你的所有修改都是在默认的changelist里发生的,等到你完成了一段代码修改,那么你可以运行:

p4 change

这样会出来一个文本编辑器,就像git commit一样,这时你的changelist就会获得一个唯一的id编号,方便日后你追踪这个修改。但注意,这时代码并没有提交。虽然服务器上能看到你编辑了哪些文件,但文件的具体内容还未上传。

暂存修改(shelve)

你可以暂存你的修改到服务器上,这个功能非常常用,可以让你把一个工作做完后放在一边,然后你可以去干别的事情。一般code reivew也会使用shelve功能,你shelve的代码如果标记要review后,同事会受到提醒。

$ p4 shelve

提交代码(submit)

在你完成测试,review,修改,再review,再测试,最后没有问题时,你的changelist终于可以提交了。那么你可以使用 p4 submit将代码提交到代码仓库里,这时别人sync指令就能获取到你的代码了。

要注意,提交代码有可能成功,也可能不成功,因为期间有可能有别人修改了你的代码,你必须resolve冲突后才能成功提交。不过,代码提交是事务的,要么全提交,要么全拒绝。

一般情况下,因为你要先shelve代码进行code review,所以你提交时必须先把shelved代码delete掉。

$ p4 shelve -c <changelist_id> -d
$ p4 submit -c <changelist_id>

检查一个文件是否是被p4托管

p4 files <filename>