[SCM]源码管理 - Perforce命令行

网友投稿 1661 2022-11-13

[SCM]源码管理 - Perforce命令行

[SCM]源码管理 - Perforce命令行

一 P4(perforce)环境和sample project

p4 环境:

sample project:

二 P4命令行

1)p4env.bat

set path=C:\Program Files\Perforce;%path%set P4Port=localhost:1666set p4user=AAAset p4passwd=aaaset p4client=TestProject_AAAset p4Root=//depot/TestProjectset p4LocalRoot=c:\MyLocalTestProjectset p4Drive=H:if exist %p4Drive% (subst /d %p4Drive%)subst %p4Drive% %p4LocalRoot%

在所有命令执行前设置p4port,p4user,p4password,p4client;一般需要subst虚拟盘来避免绝对路径,保证开发环境在所有的developers上可用。

2)p4login+logout.bat

call p4env.batecho %p4passwd%|p4 loginpausep4 logoutpause

所有p4命令执行前需要执行p4 login来获得ticket(表示用当前%p4user%来login)。

3)p4set.bat

call p4env.batp4 setpause

查看当前的p4的环境变量的设置,包含p4user,p4passwd,p4client,p4port...。

4) p4sync.bat

call p4env.batREM sync to headp4 sync -f %p4Root%/...pauseREM sync to CLp4 sync -f %p4Root%/...@9pauseREM sync to labelp4 sync -f %p4Root%/...@label1pause

可以sync到最新head,sync到指定的CL(changelist),或是sync到指定的label;sync到指定的label时,只sync在label中包含的文件,在label后新加的文件不sync。

5)p4label.bat

call p4env.batREM label the head version and create the labelp4 tag -l label2 %p4Root%/...pauseREM label to one CL and create the labelREM this is the best way to label p4 by one CLp4 tag -l label1_1 %p4Root%/...@12pauseREM show all files in one labelp4 files @label2pause

label用来标识特定版本的某些文件;

label可以标识当前的p4上的最新文件,也可以标识某些文件在指定CL时刻的版本;

Labelsync 使用当前client的内容来更新label。需要先使用label来创建label。

6)p4latestcl.bat

call p4env.batfor /f "tokens=2" %%i IN ('p4 changes -m 1 %p4Root%/...') do (@echo %%i > CL.txt)set /p latestCL=

用来获取当前最新的CL。

7)p4checkin.bat

call p4env.batset FileBeChanged=%p4Drive%\TestProject\components.txtREM generate p4 change form for new CLprintf "\n">change.txtprintf "Change:\tnew\n">>change.txtprintf "\n">>change.txtprintf "Status:\tnew\n">>change.txtprintf "\n">>change.txtprintf "Description:\n">>change.txtprintf "\tUpdate BBB components.txt!\n">>change.txtpauseREM new CLcat change.txt | p4 change -i | awk '{print $2}'>newCL.txtset /p newcl= temp.txtcat temp.txt> %FileBeChanged%pauseREM submit the CLp4 submit -c %newcl%pause

components.txt如下:

BBB  4CCC  9

此脚本演示了自动修改componets.txt文件,然后自动submit的过程;

其中p4 change用来产生新的CL,需要输入change.txt文件;

其中p4 edit用来把修改的文件加入到CL;

其中p4 submit用来提交CL;

第三方的sed.exe,cat.exe。

完!

作者:​​iTech​​

github:​​https://github.com/cicdops/cicdops​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:IDEA如何修改配置文件的存放位置
下一篇:Perforce查看workspace sync到的changlist
相关文章

 发表评论

暂时没有评论,来抢沙发吧~