56

Perforce使用教程-腾讯游戏学院

 5 years ago
source link: http://gad.qq.com/article/detail/287233
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

本文首发于知乎专栏MACK的游戏开发笔记,欢迎各位关注。

简介

Perforce是一款非常优秀的商业化版本管理工具,特别是对美术资源比较友好,更新速度快安全。

安装

    • 首先安装Windows版的P4,双击安装包选择路径开始安装,这里的Server和Name可以先不填
5ba9da17afa02.png
    • 启动P4登录输入服务器地址,输入分配的P4账号,自己创建一个新的Workspace
5ba9da233178c.png创建Workspace,名字的话包含项目,职位,员工名称,按照如下规则:5ba9da4ed0987.png
    • 如果客户端让你确认证书指纹,请信任该指纹
5ba9da5638e76.png
    • 重要:如果客户端让你选择编码方式,请选择UTF8编码
5ba9da5cf0504.png
    • 重要:修改Line ending:菜单栏中依次选择Connection–>Edit Current Workspace–>Advanced,然后选择UNIX
5ba9da63160b6.png
    • 如果有多个库,点击Connection->Open Connection可以弹出设置服务器,用户,WorkSpace的窗口
5ba9da694ebae.png

或者点击Connection->Open Recent 可以直接切换打开过的服务器,用户,WorkSpace的配置

Workspace

Workspace可以理解为,depot到本地的一个映射,对应本地的一个目录。例如:

5ba9da6fe42ff.png

开发的过程中可以有多个Workspace(例如一个用来开发,一个用来更新验证保证提交没有错误),但一般只推荐有一个Workspace

    • WorkSpace可以切换,通过Connection->Switch To Workspace或者,如下图:
5ba9da774dd4b.png

选择列表中的Workspace条目,双击切换,按DEL按键可以删除Workspace。出现问题的时候先确认下Worksapce是否正确。

    • WorkSpace可以编辑,通过Connection->Switch To Workspace,如下图:
5ba9ddbd6dabc.png5ba9ddbe1989f.png5ba9ddbeb3f9c.png
可以修改Workspace的名字,本地目录以及一些高级参数

视图

5ba9dddd1566f.png

目录区分为Depot标签页表示服务器上存储的文件目录结构,和Workspace表示本地存储的文件目录结构。

    • 带感叹号的文件表示本地和服务器不一致,一般这种情况请先更新P4
5ba9ddefd2cb6.png5ba9ddf05a7cd.png
    • 文件目录里没有任何标记的文件是说明服务器上没有的:
5ba9ddfa3caf3.png
    • 红色问号的表示和服务器上不一样,有冲突的。这种文件不能直接合入:
5ba9de04a8514.png
    • refresh某些情况下某些修改不能实时地在p4v中跟新,可以在view->refreash all。也可以在任意文件,目录或changelist右键中找到refresh相关的操作:
5ba9de0d4bce2.png5ba9de15c5058.png


获取

    • 在需要获取资源的目录上右键选择Get Latest Revision,这样可以拉取服务器最新的变更,【重要:每次提交前必须拉取一次】:
5ba9de258f03b.png
    • 因为Get Latest Revision是拉取服务器最新变更,但是有时候我们希望覆盖本地的资源,或者是P4出了一些问题导致一些资源没有更新到。这时候我们可以选择Get Revision,然后在弹出的窗口勾选Force Operation,再点击Get Revision的按钮,强制从服务器上拉取最新的资源。这样服务器会把该目录下的资源强制拉取一遍,时间会比较长:
5ba9de2f3fece.png
    • 另外也可以对指定版本获取,一般用于回退到某个版本:
5ba9de3c4091a.png


Submit

P4的提交是以Changelist为单位,所有修改过的文件会放在一个Changelist里。如下图

5ba9de8007dce.png

对要修改的文件,在文件上右键选择CheckOut,会弹出选择Changelist的窗口,可以放在默认或者新建的Changelist下:

5ba9de70da255.png5ba9de8fee625.png
    • 对要删除的文件可以右键选择Mark for Delete,最好在depot窗口操作,【重要:删除的时候别忘了删除meta文件】,特别是目录也有meta:
5ba9dea255aa3.png
    • 对新增的文件,需要到WorkSpace视图下选择Mark for Add:
5ba9df1999336.png
    • Reconcile。P4提供一个便捷的方式可以直接对一个目录进行比较,找到和服务器上不同的文件,包括修改,删除,新增。找出之后会自动添加到Changelist中,自动完成上面三种操作:
    • 5ba9debf3acfa.png5ba9dee303d65.png
有了Changelist之后,就可以提交了。右键Changelist选择Submit或者点击工具栏里的Submit图标,都会弹出 上传的提示框,输入上传的备注之后就可以提交了。建议每次提交前先对Changelist右键选择Revert Unchanged Files防止提交一些未修改过的文件。【重要:提交备注一定要写的详细清晰易懂】:
5ba9df3ae1b44.png5ba9df3b7f5f5.png5ba9df3c133c3.png5ba9df3c96859.png

Revert

当有文件不想提交的时候可以选择revert,revert之后会放弃本地修改,从服务器重新拉取最新的文件。

    • 选中文件或者Changelist之后右键,在弹出菜单里可以选择Revert If Unchanged或者Revert。Revert If Unchanged是当本地文件和服务器一样没修改的时候会回退。Revert则是强行回滚,放弃本地修改。如果选择的是Changelist,则会对Changelist下的所有问题做Revert操作。
5ba9df59d6e13.png

另外也可以通过工具栏的Revert按钮进行回退。

5ba9df636cdd2.png


History

有多种方法可以看到目录或者文件的历史,可以看到在什么时候谁传了什么内容。可以比较修改了什么,也可以直接获得历史版本。【重要:每次提交前必须先对比一下本地文件和服务器文件的差异】。

    • 在Changelist的文件上右键,选择File History,会弹出文件历史窗口:
5ba9df79eb90a.png5ba9df7a822dc.png

然后可以对历史做比较,可以比较任意两个历史版本,也可以拿当前本地文件和服务器历史版本比较等等:

5ba9e0b6794ed.png
    • 还有一种就是选中目录区的文件夹或者文件上,然后在信息区切到History的标签页上:
5ba9e0c6b5f01.png


Resolve

当本地文件和服务器有冲突时文件上会有红色的问号。这时候我们必须首先解决冲突。

    • 在冲突文件上右键选择Resolve:
5ba9e0ceb0121.png

然后弹出菜单中有四种选项,Accept Source,Accept Target,Accept Meged,Run Merge Tool。如果希望以自己的为准强行合并,就选择Accept Target一般来说美术资源多选择这个,如果希望以服务器为准就选择Accept Source,Target还是Source可以通过上面显示的信息确认。如果希望让工具自动合并本地和服务器,就选择Accept Merged。如果选择了Run Merged Tool就会弹出Merge工具,人工进行合并:

5ba9e0d76cd48.png


Shelve

当有些文件本地修改了,希望让别人获得或者先不想上传自己缓存一下,可以使用Shelve功能。这样这些文件会传到服务器上但是不会进版本,别人或者自己也可以从服务器上再拉下来。

    • 右键选中的文件选择Shelve,也可以选中整个Changelist然后右键Shelve Files,成功之后会再Shelved Files有文件列表:
5ba9e0de68259.png
    • 当想获得Shelve文件时,可以把Changelist的过滤关闭,选择希望Unshelve的Changelist,然后Unshelve:
5ba9e0e5e55f0.png


PS

    • 【重要:一定要不要漏了传meta文件!】如果漏传了meta文件,应该把本地对应的资源文件和meta一起删除,提交服务器,然后再重新上传一遍。并且之前的引用要重新指定一遍。
    • 每次登陆需要确认Workspace正确
5ba9e0ec8f123.png

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK