Win10 下 Perforce 命令行快速上手
相对于 Git 和 SVN,Perforce 在管理二进制文件上更方便
本文参考了官网教程
https://www.perforce.com/manuals/p4guide/Content/P4Guide/tutorial.readmefirst.html
Git 用户看这里
Stream Depot 大概可以理解为一个 Git 项目,然后 Stream 就是 Git 里的分支
其中 Stream 必须要依赖于 Stream Depot 存在
安装
https://www.perforce.com/downloads
把服务端和命令行客户端都装上就行了,也可以整图形化界面
Windows 下安装包会自动配置环境变量;并且服务端装完后会自动启动,如果没有的话就用 p4d
命令启动服务端
我们可以在 PowerShell 里输入下面的命令测试一下服务端是否正常
p4 info
创建 Stream Depot
p4 depot -t stream TestDepot
解释一下,这行命令创建了一个名为 TestDepot
的 Stream Depot,-t stream
用于指定这个 Depot 的类型
创建 Stream
Git 中我们通常会开 master
和 dev
分支
在 Perforce 里我们也可以做同样的操作,使用下面两行命令创建 main
和 dev
两个 Stream
p4 stream -t mainline //TestDepot/main
p4 stream -t development -P //TestDepot/main //TestDepot/dev
解释一下,-t
参数用于指定 Stream 的类型,-P
参数用于指定父 Stream;上面的例子里 main
这个 Stream 是 dev
的父 Stream
需要注意 mainline
类型的 Stream 不能有父 Stream
我们可以使用下面的命令来查看所有的 Stream
p4 streams
创建 Workspace
之前 Stream 相关的操作都是作用在服务端上的
这里我们在本地创建 Workspace
首先设置环境变量 P4CLIENT
,这个是 PowerShell 的写法
配环境变量这种操作其实我是觉得挺离谱的
$env:P4CLIENT='hello_client'
然后 cd
到一个空的文件夹,输入以下命令
p4 client -S //TestDepot/main
这样这个文件夹就跟 main
这个 Stream 绑定起来了
添加文件
在这个文件夹里新建一个文件 test_file.txt
p4 add .\test_file.txt
p4 submit -d 'Add a test file'
修改文件
Workspace 里已有的文件通常都是只读的,我们使用下面这行命令修改 test_file.txt
的读写权限
p4 edit .\test_file.txt
然后用编辑器改一下里面的内容
p4 submit -d 'Modify a test file'
删除文件
p4 delete .\test_file.txt
p4 submit -d 'Delete a test file'
需要注意这个只是从服务端把该文件删除,Workspace 里这个文件依然存在
与服务端同步
如果其他人对 Stream 进行了修改并提交到了服务端,我们可以把这些修改同步到本地的 Workspace 里
p4 sync
切换 Stream
我们可以使用下面这个命令查看所有的 Stream
p4 switch -l
然后我们切换到 dev
p4 switch -r dev
合并 Stream
merge
命令只能以父 Stream 为源,子 Stream 为目标
首先 switch
到子 Stream,然后执行下面的命令,会自动从父 Stream 上合并过来
p4 merge
p4 resolve
后面的 resolve
命令是解决两个 Stream 的冲突,不同于 Git 的自动合并,手动合并非常原始,建议使用图形化界面或者编辑器插件
resolve
完了之后记得 submit
p4 submit -d "Merge"