Perforce 客户端基础

Posted on   |     Views

安装 Perforce Client

登录

  • 打开装好的 P4V,在 Server 中输入服务器的地址和端口,在 User 中输入用户名,可以点击 Browser... 按钮查看所有的用户列表
  • 点击 OK 按钮后,会弹出一个密码输入框,输入密码后点 OK 按钮连接服务器

创建工作目录

  • 点击 (no workspace selected) 下拉框,选择 New Workspace...,在弹出的对话框中填写以下信息
    • Workspace name : 工作区名称
    • Workspace root : 工作区根目录路径

同步代码库

  • 选择 Depot 标签,在库名上右键,选择 Get Latest Revision,同步完成后,就会在工作区根目录下看到同步下来的代码库

  • 如果同步下来的文件直接创建在了工作区根目录下,那么可以刷新一下映射来将文件组织到库文件夹下,如图

主界面

左边浏览窗口

  • Depot标签页:查看所有在版控服务器上的文件状态
  • Workspace标签页:对应的版控文件列表
  • 文件状态指示:
    • 黄色三角:表示该文件不是最新的
    • 右上角蓝色对号:表示该文件被另一个用户检出(checkout),鼠标悬浮可以查看用户信息
    • 左上角红色对号:表示该文件正在被自己检出

右边视图窗口

位于主窗口右边的区域是视图窗口列表,可以通过菜单栏上的 View 菜单来打开更多的功能视图,几个重要的视图如下

  • History: 查看文件的修改历史
  • Pending Changelists: 查看检出的文件列表
  • Submited Changelists: 查看历史提交信息
  • Branch Mappings: 查看分支信息
  • Labels: 查看标签信息

底部视图窗口

位于主窗口底部的视图窗口主要是日志窗口,显示各个命令的执行内容和结果,如果需要写版控脚本,可以参考这里的命令

基础操作

Perforce 的最基本操作,就是 获取文件最新版本(Get Latest Revision)->检出(chekcout)->加锁(可选)->修改->查看差异(可选)->丢弃修改(可选)->提交(submit)->解决冲突(可选)

获取最新版本

在文件浏览窗口中,如果发现某个文件有黄色三角标记,则表示该文件本地版本不是最新的,# 号后面的第一个数字表示本地的版本号,第二个数字表示服务器上的版本号,此时就可以通过右键文件名(或文件夹名),选择 Get Latest Revision 来获取最新的版本

检出(Checkout)

Perforce中,修改某个文件前需要先检出该文件,以免在不知道的情况下有多个人同时修改同一个文件。当然,对一个已被其他人检出的文件,也可以进行检出操作,这样提交文件时可能会冲突,需要先解决冲突才能成功提交到服务器中。检出完成后,可以在右边的 Pending 窗口中看到所有被自己检出的文件

加锁

如果希望按顺序修改一个文件,特别是二进制文件,比如音乐、模型、特效,那么可以在检出文件后对文件进行加锁,在 Pending 窗口中,右键文件,选择 Lock,这样只有当自己主动解锁或者提交之后,别人才可以提交他们的修改

查看差异

修改某个检出的文件后,如果想查看具体修改的地方,可以在 Pending 窗口中,右键文件,选择 Diff Against Have Revision。或者选择 Diff Against...,并在弹出的对话框中选择要比较的文件版本

丢弃修改

在对某个检出的文件进行修改后,如果想放弃这些修改,可以在 Pending 窗口中,右键文件,选择 Revert。注意,Revert之后不仅会丢弃修改,而且会把文件从检出列表中删除

提交修改

完成修改后,需要将修改过的文件同步到服务器上,可以在 Pending 窗口中,右键文件,选择 Submit...,并在弹出的对话框中,填写提交描述,增加或删除要提交的文件,最后确定提交。提交前还可以对文件执行 Revert If Unchanged操作,丢弃那些没有修改过的文件,保证提交中只包含有修改的文件

解决冲突

当文件冲突时,会使得后提交的人提交失败,如图

这时需要先解决冲突后才能提交,解决冲突首先需要对冲突的文件执行Get Latest Revision操作, 然后再执行 Resolve操作,在弹出的对话框中选择相应的解决冲突方式,解决后,再执行提交操作

忽略文件

在目录下新建一个 .p4ignore.txt 文件,在其中指定忽略规则(同Git的规则),然后执行命令 p4 set P4IGNORE=.p4ignore.txt

进阶操作

文件暂存(shelve)

当你正在对一个文件增加新功能,然后突然需要紧急修改该文件中的一个bug,那么就可以将当期的修改进度暂存起来(shelve),然后重新检出该文件,进行bug fix

或者你开发完成一个新功能,在提交前需要被review,那么可以将修改暂存,然后通知对方拉取该shelve进行review

视频教程

分支管理

视频教程

文件版本路线图工具

视频教程

文件修改历史追溯

视频教程