Perforce使用教程
资源链接:
https://download.csdn.net/download/love_xiaozhao/20534062
P4V文件状态命令速查表_p4v-互联网文档类资源-CSDN下载
PerforcexHelix分支策略_perforce分支-互联网文档类资源-CSDN下载
简介
Perforce是一款非常优秀的商业化版本管理工具,特别是对美术资源比较友好,更新速度快安全。
安装
-
- 首先安装Windows版的P4,双击安装包选择路径开始安装,这里的Server和Name可以先不填
-
- 启动P4登录输入服务器地址,输入分配的P4账号,自己创建一个新的Workspace
-
- 创建Workspace,名字的话包含项目,职位,员工名称,按照如下规则:
-
- 如果客户端让你确认证书指纹,请信任该指纹
-
- 重要:如果客户端让你选择编码方式,请选择UTF8编码
-
- 重要:修改Line ending:菜单栏中依次选择Connection–>Edit Current Workspace–>Advanced,然后选择UNIX
-
- 如果有多个库,点击Connection->Open Connection可以弹出设置服务器,用户,WorkSpace的窗口
或者点击Connection->Open Recent 可以直接切换打开过的服务器,用户,WorkSpace的配置
Workspace
Workspace可以理解为,depot到本地的一个映射,对应本地的一个目录。例如:
开发的过程中可以有多个Workspace(例如一个用来开发,一个用来更新验证保证提交没有错误),但一般只推荐有一个Workspace
-
- WorkSpace可以切换,通过Connection->Switch To Workspace或者,如下图:
选择列表中的Workspace条目,双击切换,按DEL按键可以删除Workspace。出现问题的时候先确认下Worksapce是否正确。
-
- WorkSpace可以编辑,通过Connection->Switch To Workspace,如下图:
可以修改Workspace的名字,本地目录以及一些高级参数
视图
目录区分为Depot标签页表示服务器上存储的文件目录结构,和Workspace表示本地存储的文件目录结构。
-
- 带感叹号的文件表示本地和服务器不一致,一般这种情况请先更新P4
-
- 文件目录里没有任何标记的文件是说明服务器上没有的:
-
- 红色问号的表示和服务器上不一样,有冲突的。这种文件不能直接合入:
-
- refresh某些情况下某些修改不能实时地在p4v中跟新,可以在view->refreash all。也可以在任意文件,目录或changelist右键中找到refresh相关的操作:
获取
-
- 在需要获取资源的目录上右键选择Get Latest Revision,这样可以拉取服务器最新的变更,【重要:每次提交前必须拉取一次】:
-
- 因为Get Latest Revision是拉取服务器最新变更,但是有时候我们希望覆盖本地的资源,或者是P4出了一些问题导致一些资源没有更新到。这时候我们可以选择Get Revision,然后在弹出的窗口勾选Force Operation,再点击Get Revision的按钮,强制从服务器上拉取最新的资源。这样服务器会把该目录下的资源强制拉取一遍,时间会比较长:
-
- 另外也可以对指定版本获取,一般用于回退到某个版本:
Submit
P4的提交是以Changelist为单位,所有修改过的文件会放在一个Changelist里。如下图
-
- 对要修改的文件,在文件上右键选择CheckOut,会弹出选择Changelist的窗口,可以放在默认或者新建的Changelist下:
-
- 对要删除的文件可以右键选择Mark for Delete,最好在depot窗口操作,【重要:删除的时候别忘了删除meta文件】,特别是目录也有meta:
-
- 对新增的文件,需要到WorkSpace视图下选择Mark for Add:
-
- Reconcile。P4提供一个便捷的方式可以直接对一个目录进行比较,找到和服务器上不同的文件,包括修改,删除,新增。找出之后会自动添加到Changelist中,自动完成上面三种操作:
-
- 有了Changelist之后,就可以提交了。右键Changelist选择Submit或者点击工具栏里的Submit图标,都会弹出 上传的提示框,输入上传的备注之后就可以提交了。建议每次提交前先对Changelist右键选择Revert Unchanged Files防止提交一些未修改过的文件。【重要:提交备注一定要写的详细清晰易懂】:
Revert
当有文件不想提交的时候可以选择revert,revert之后会放弃本地修改,从服务器重新拉取最新的文件。
-
- 选中文件或者Changelist之后右键,在弹出菜单里可以选择Revert If Unchanged或者Revert。Revert If Unchanged是当本地文件和服务器一样没修改的时候会回退。Revert则是强行回滚,放弃本地修改。如果选择的是Changelist,则会对Changelist下的所有问题做Revert操作。
另外也可以通过工具栏的Revert按钮进行回退。
History
有多种方法可以看到目录或者文件的历史,可以看到在什么时候谁传了什么内容。可以比较修改了什么,也可以直接获得历史版本。【重要:每次提交前必须先对比一下本地文件和服务器文件的差异】。
-
- 在Changelist的文件上右键,选择File History,会弹出文件历史窗口:
然后可以对历史做比较,可以比较任意两个历史版本,也可以拿当前本地文件和服务器历史版本比较等等:
-
- 还有一种就是选中目录区的文件夹或者文件上,然后在信息区切到History的标签页上:
Resolve
当本地文件和服务器有冲突时文件上会有红色的问号。这时候我们必须首先解决冲突。
-
- 在冲突文件上右键选择Resolve:
然后弹出菜单中有四种选项,Accept Source,Accept Target,Accept Meged,Run Merge Tool。如果希望以自己的为准强行合并,就选择Accept Target一般来说美术资源多选择这个,如果希望以服务器为准就选择Accept Source,Target还是Source可以通过上面显示的信息确认。如果希望让工具自动合并本地和服务器,就选择Accept Merged。如果选择了Run Merged Tool就会弹出Merge工具,人工进行合并:
Shelve
当有些文件本地修改了,希望让别人获得或者先不想上传自己缓存一下,可以使用Shelve功能。这样这些文件会传到服务器上但是不会进版本,别人或者自己也可以从服务器上再拉下来。
-
- 右键选中的文件选择Shelve,也可以选中整个Changelist然后右键Shelve Files,成功之后会再Shelved Files有文件列表:
-
- 当想获得Shelve文件时,可以把Changelist的过滤关闭,选择希望Unshelve的Changelist,然后Unshelve:
分支合并
当进行多线开发的时候会有多线之间互相合并的问题,例如目前的开发线是Client,920版本分支线是0.0.4.0,我们希望把主干的一次提交合并到分支上。我们可以再主干的提交记录History面板中选中历史的Changelist,然后右键选择Merge/Integrate。如下图:
然后在弹出的面板中,将Merge method选择为Use branch mapping,将Branch mapping0.0.4.0,确保下方的信息栏中是从Client指向0.0.4.0分支的。最后点击下方的Merge按钮。如下图:
这样就会在Pending面板中自动生成一个合并到分支的Changelist,只要对这个Changelist进行Submit提交即可。如下图:
因为是合并操作,所以经常会出项冲突的情况的。这时候可以按照之前的教程进行Resolve合并解决冲突。一般二进制资源无法合并,需要选择拿哪个版本覆盖。确保自己上传的是最新资源可以选择Accept Target,会拿本地版本覆盖服务器上冲突版本。可以从红圈内的target路径和source路径判断是拿那个版本覆盖那个版本。选择如下图:
PS
-
- 【重要:一定要不要漏了传meta文件!】如果漏传了meta文件,应该把本地对应的资源文件和meta一起删除,提交服务器,然后再重新上传一遍。并且之前的引用要重新指定一遍。
- 每次登陆需要确认Workspace正确