UE 官方主推 P4,在二进制文件上他有加锁的机制,还算能用,但是很贵。
安装
下载地址: https://www.perforce.com/downloads/helix-visual-client-p4v
P4最好默认安装在C盘,与后续的UGS使用设置有关。
P4V
我们的 Depot 和 Workspace 是一个一一对应关系,因此对哪个进行 Checkout 都是一样的。
1. Reconcile Offline Work
对于没有 Checkout 的文件,默认是锁住的,是一个只读状态。如果我们没有连接 P4 但是又更改为可写状态在其他地方进行了更改,此时就不会加入到 Pending 里面。 (我之前就犯了这个错误,vs连接p4失败了,于是漏了文件没传上去,导致项目构建失败)
我们可以右键点击 Reconcile Offline Work 来检查一下有没有漏的文件:
这个指令也就是让 Change list 和本地的情况一致。
2. Revert Unchanged Files
第二个好用的指令是这个:
可以自动 Revert 掉没有更改但是被checkout的文件。
IDE
VS2022
对于 VS2022,我们需要安装 P4VS 插件:
此时就可以在Tools->Options里进行设置:
这里我认为很好用的一个设置是:
那样对于可写的文件,在保存的时候就会自动 Checkout 上,这样就不用担心漏checkout的问题了。
Rider
由于觉得 VS2022 对于写 UE 有不方便之处,我还是切到了 Rider,对于 Rider 官方就支持 Perforce,无需安装任何插件。
我们只需要填好这两处即可:
如果还没生效重启一下就可以了。
命令行
背景
美术反馈有一个文件,mark for add会报错 Cannot check out “exclusive open” file(s),重命名为其他名字就可以add上。
怀疑是其他人也对同样名字的文件mark for add,但是没有提交,导致被锁住了,p4v里头又看不到是谁,所以就借助命令行查看了。
初始化p4
|
|
接着对那个文件使用 opened -a :
|
|
获取文件状态
|
|
这里的 xxx 可以是本地路径(e:\xxx\xxx之类),也可以是服务器路径(//xxx/xxx之类),如果是对一个文件夹做检查,可以在最后加上 … 如 xxx/…
搜索Descroption
例如想搜索单号,Powershell 下可以用:
|
|
搜出来changelist,p4v 可以查看:
P4HOST
默认的 P4HOST 应该和本地计算机名一致,在设置里可以重命名。Workspace 需要和 Host 绑定。
|
|
命令行环境和 workspace 的host不一致可能会导致p4v无法进去,此时可以用前面的 bash 指令先改回 workspace 对应的 host.
p4v 可以在 connection -> edit current workspace -> advance 中改当前 workspace 的 host。