Perfore(P4) 教程
Perfore(P4) 教程
P4 作为一款商业代码管理工具,受到了不少企业的欢迎。而学会使用这个工具往往是很多新员工的最痛苦的部分。
本文就简单梳理一下P4的核心概念以及如何正确使用这个工具。
P4 是集中管理代码的版本管理工具,所有代码都统一存放于公司的若干代码服务器节点上,而用户,需要创建一个client来访问代码,登录后,团队其他成员也能看到哪些文件正在被哪些人编辑中,更加方便团队的实时协作。
一般一个用户有两种设置p4的方法:
- P4环境变量
P4环境变量主要需要设置: $P4PORT
这个是你要访问的实例的名字,还有 P4CLIENT
这是你client客户端的名字
- .p4config
使用配置文件,只需要设置一个环境变量 $P4CONFIG
为 .p4config
使用配置文件的好处是,你可以把这个配置文件放到workspace里,不同的workspace的不同配置互不影响,可以每个项目设置独立的client(这也是推荐做法),非常方便
编辑client
输入p4 client 就会自动弹出一个客户端配置文件的编辑器,重要的配置有以下几个:
- Root: 代码仓库的位置
- View: 一组目录映射的配置,由于公司的项目都很大,每个人只需要关心一小部分代码,你可以只签出你关心的几个项目
同步代码
同步所有代码很简单
p4 sync //...
当然你直接 p4 sync
是同步当前目录
代码修改
默认签出的代码全部都是readonly的。如果你想修改一个文件,必须先改变其状态:
p4 edit <file>
这个edit指令会告诉服务器,你现在要开始编辑这个文件了,这个状态是能被公司其他人看到的,那么别人看你在编辑这个文件后,就会考虑是不是等你这边更新完后他们再改。这样可以避免一些提交时的冲突。
添加和删除文件也有专门的指令p4 add
和p4 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>