前言
近期做的两个项目都是UE项目且用到了Perforce版本控制工具,在此总结分享下搭建版本控制的流程。
阿里云ECS与Perforce服务端搭建
步骤1:注册一个阿里云的账号,弄到一台云服务器ECS
首先需要一台设备作为远程仓库来存储版本文件,我是使用的阿里云的ECS云服务器,ECS的使用教程跟着阿里云的视频还有文档,一步一步做就可以了,如果有的功能找不到也可以直接问客服,回答都挺及时的,有了一台ECS服务器之后进入管理控制台网页就可以看到以下页面。
私人用户注册可以免费领取3个月的ECS服务器,大学生用户点击阿里云高校计划完成操作可以免费领7个月的ECS云服务器。
步骤2:远程连接ECS实例
通过Workbench远程连接ECS实例,如果没有该选项,可能是实例在重启中或者关机中,远程连接后发现其实就是一台配置不是很高的Windows电脑。
步骤3:在ECS上下载安装Perforce服务器端
因为ECS云服务器其实就是一台24小时开着的Windows电脑,所以如果你有一台电脑可以在项目合作周期内一直运行直接充当服务器也可以。接下来的操作就是如何在一台Windows电脑上安装P4D(Perforce服务端)。首先进入Perforce官网点击Downloads
搜索P4D,点进去选择操作系统,下载安装,安装过程需要注意有一个服务器库的Root需要指定,这个是放工程版本文件的Root地址,还有一个端口号默认1666需要记住,要在阿里云的安全组配置端口后才可用。
步骤4:配置ECS实例安全组
在ECS实例页面进入安全组配置页面
添加入方向安全组,端口号为安装P4D时使用的端口号,默认是1666,如果是自定义的端口需要记住不能有其他进程在使用这个端口号,到目前为止,Perforce服务器端配置完成,接下来配置客户端。
Perforce管理员客户端配置(小组成员看后面的,这个是管理员)
步骤1:下载安装P4V(Perforce客户端)
在之前的下载页面,下载P4V,安装过程保持默认,可以自定义安装路径
步骤2:注册用户,连接远程仓库
安装好之后会弹出以下界面,其中Server填写ECS实例的公网IP:端口号(公网IP可以在控制台实例详情看到),例如111.111.111.111:1666,User要先点击New一个,Perforce默认New的第一个成员是管理员,Workspace可以暂时不填写,一会再填写。
步骤3:配置P4 Typemap
在向远程仓库和本地工作区添加文件前,应当先设置P4 Typemap来让 Perforce 了解如何对待虚幻文件类型。typemap 的设置能够在 Perforce 中控制文件的只读和可写的形式。 然后要做这件事情,需要管理员先在命令行cmd下设置 P4 的环境变量。
打开命令行,依次输入下面两行,将下面相应的部分替换为你的用户名和连接地址。
p4 set P4USER=your.username
p4 set P4PORT=localhost:1666
将下面相应的部分替换为你的用户密码,打开 typemap 设置。
p4 -P YourPassword typemap
然后将会看到一个文本窗口,这就是当前服务器的 typemap。需要将TypeMap以及之后的部分替换为下方代码:
TypeMap:
binary+w //depot/....exe
binary+w //depot/....dll
binary+w //depot/....lib
binary+w //depot/....app
binary+w //depot/....dylib
binary+w //depot/....stub
binary+w //depot/....ipa
binary //depot/....bmp
text //depot/....ini
text //depot/....config
text //depot/....cpp
text //depot/....h
text //depot/....c
text //depot/....cs
text //depot/....m
text //depot/....mm
text //depot/....py
binary+l //depot/....uasset
binary+l //depot/....umap
binary+l //depot/....upk
binary+l //depot/....udk
binary+l //depot/....ubulk
完成编辑后,保存并退出。命令行应该会提示Typemap saved。
步骤4:设置本地工作区,上传文件到远程仓库
要在 Perforce 管理下的文件进行工作,需要在本机设置一个 Workspace 这样 Perforce 才能管理这些文件。 可以在 P4V 界面的主菜单中,View 菜单下的打开 Workspace 分页然后便能创建 Workspace 了。
要创建一个新的 Workspace,右键点击 Workspace 窗口空白处,选择新建 Workspace选项。然后输入要创建的 Workspace 的名称,以及你希望文件存储在本机的位置目录,即 Workspace 的根目
创建好本地工作区,Perforce会提示你向远程仓库添加一些文件,因为远程仓库现在是空的,这时就可以向远程仓库添加你现有的UE项目或者是新建一个UE项目来添加。
在创建一个新项目时,可以选择是 C++ 项目还是纯蓝图项目。 如果选择了 C++ 项目,则可以在项目目录中可以看到有Source目录。下面这些项目目录被高亮为绿色的目录和文件应该被添加到项目的远程仓库中。Binaries 目录高亮为黄色,可以选择是否要加入到版本管理中,这取决于团队自生的工作需要。 如果团队中每个人都准备自己来编译引擎和游戏的话,那么 Binaries 则无需加入到版本管理中,但如果团队中有人只是想获取一个版本就能直接在编辑器中工作的话,则需要把 Binaries 添加上去。
添加好远程仓库,只需要在P4V客户端点击Get Latest就可以将远程仓库的最新版本同步到本地工作区。
步骤5:在UE项目中连接Perforce
首先在编辑->插件中启用Perforce插件
点击源码管理->连接源码管理,提供方选择Perforce,服务器填写ECS公网IP:端口,用户名填写之前注册的用户名,工作区先看看是否在下面可以选择,如果不行就尝试手动输入,点击接受设置,连接成功UE会弹窗提示。
记得在编辑器偏好设置中勾选资产修改时的迁出设置,这可以避免你在修改一个资产的时候,别人修改导致冲突的问题。
步骤6:添加其他组员进入Perforce
在P4V客户端中点击Tools->Administration进入管理员菜单,在管理员菜单可以进行仓库的管理和人员的分组和删减。
在Users & Groups界面可以添加新的人员,并且对人员进行分组,在此就可以对其他小组成员进行用户注册,也就是之前的New一个用户。
Perforce成员客户端配置
步骤1:下载安装P4V(Perforce客户端)
首先进入Perforce官网点击Downloads,下载P4V,安装过程保持默认,可以自定义安装路径
步骤2:登录用户,连接远程仓库
安装好之后会弹出以下界面,其中Server填写ECS实例的公网IP:端口号(联系管理员可以得知),例如111.111.111.111:1666,User管理员应该已经帮你注册好了,在这里可以直接Browse,Workspace需要New一个新的来作为本地工作区存储工程文件,工作区名称和路径自己填写,Stream选择管理员上传项目文件想让你获取的工程流。
步骤3:获取远程仓库文件
点击Get Latest获取远程仓库项目文件
步骤4:打开获取的UE项目文件,连接Perforce源码管理
详情参考管理员步骤5
工作流
在UE编辑器中,对于资源的工作流程基本上都是遵循了 Perforce 的流程。资源文件(扩展名为 .uasset 和 .umap)是UE主要的工作对象。 由于这些文件是二进制的格式,因此并不能被作为文本文件打开,也不能在文本合并工具中合并。因此,当对一个文件进行改动时,编辑器将会锁定该文件(在 Perforce 中被叫做Check Out), 这样其他用户就无法对它同时也进行修改。当该用户完成了对这个锁定的文件的修改编辑,则需要签入(check in)那些文件,将文件上传到服务器上,并且释放文件的锁定状态。
所以合适的工作流应该是:
步骤1:打开P4V客户端,获取其他成员的最新文件,Get Latest
步骤2:打开UE编辑器,修改的资产都会提示迁出或者自动迁出(之前的编辑器偏好设置),一定要迁出文件后再保存修改,不要强制设为可写
步骤3:修改完成,提交文件的同时,看需要将资产迁入或者保持迁出,记得填写变更描述,不支持中文!!!