Part 1. 概述
PlasticSCM是一款性能卓越的版本控制工具,在业界和Unity生态中也一直深得项目管理者与开发者们的信赖,原因非常多,主要有二:
-
其对巨大项目存储(高达4TB级)以及成千上万个分支频繁创建与合并处理能力,给业界采用其他形式者(Git/SVN/P4等)以强烈的效果震撼。
-
其注重可视化与易用性的任务型分支,差异查询,分支拆分与合并……是包括Unity开发者在内的广大追求人性化操作的开发人员们的不二之选;
现在中国Unity进一步对整体工作流程进行系统梳理与集中式打通(包括项目管理、团队协作、版本控制、服务器配置、以及工具集成与优化)。

Unity PlasticSCM对开发者与团队的工作效率所带来的提高是巨大的,可从以下主要利益点角度进行衡量:


Part 2. 操作指南
在过往的工作流程中,部分开发者在Unity之外使用比如Git(正常访问情况)以及其他简易协作功能来分别进行项目管理与开发,工作流容易出现隔断,存在着版本控制管理与开发之间不容易同步的情况。
一键启用
而在中国Unity 对工作流程进行无缝衔接之后,UnityHub,UnityID,UnityEditor-PlasticSCM Package,Unity Editor,分支管理器将彻底打通,各司其职,以求给开发者在实际工作中带来无感知的 All in 1流畅体验。只需要在Unity Hub中一键启用,这对技术使用门槛的大幅度降低是显而易见的。


<br>
操作演示
以下通过"如何创建PlasticSCM项目"、"如何克隆远程仓库项目"、“如何进行pull/push/merge” 演示一个基本操作流程。

1,如何创建PlasticSCM项目?
创建PlasticSCM项目分为
新建PlasticSCM项目
和
托管现有项目到PlasticSCM
两种
1.1,新建PlasticSCM
1.1.1 登录UnityHub
登录Unity Hub您将看到PlasticSCM已经整合到您的项目管理列表中。

1.1.2 启用PlasticSCM
在新建项目的时候勾选启用PlasticSCM;

1.1.3 配置PlasticSCM
Plastic SCM配置过程同样非常容易:
-
启用Plastic SCM时,Unity Hub将自动为您显示您自己创建过的Unity组织(Organization)以及您加入的其他Unity组织,它们将作为您的项目仓库所在的空间。
-
Unity Hub将请您选择您所在的任意一个Unity 组织(包括自己创建的,以及作为成员加入的)作为您的PlasticSCM默认组织。
-
选定PlasticSCM默认组织,并对项目点击确认后,Unity Hub将自动将您的项目同步到您的PlasticSCM空间。
-
关于如何创建组织以及管理组织内协作的成员,请参考以下 #2.1 小节内容。
1.1.4 完成新建PlasticSCM项目
-
系统将自动启动Unity引擎打开项目,自动创建远程仓库,并自动完成第一次的Checkin(Commit)。
-
您将看到远程仓库以及分支已经自动在项目中完成创建。
-
同时您也将看到PlasticSCM窗口已经自动将项目资源作为Pending changes Items(待提交内容)。

1.1.5 自动创建一个新的Branch
这里需要注意Main分支与Branch分支的区别!创建PlasticSCM项目的同时,我们将为您的项目创建远程仓库,并在Main主线分支之外,自动创建一个新的Branch分支,作为您正在工作的分支,其目的是为了避免Main分支被作为直接修改和工作的位置。

1.1.6 完成创建(Hub视图)
您同时可以在Unity Hub的项目列表中看到刚才新建的项目,已经标识为已创建于远程仓库

1.2,托管现有项目到PlasticSCM
1.2.1 登录Unity Hub
您可以从项目列表中看到,所有项目右侧的更多操作里包含了“托管到PlasticSCM”选项。

1.2.2 为现有项目选择启用PlasticSCM

1.2.3 为现有项目选择托管到某个组织中

1.2.4 完成现有项目托管
这里需要注意Main分支与Branch分支的区别!托管现有项目到PlasticSCM与新建PlasticSCM项目相同,我们将在您项目的远程仓库Main主线分支之外,自动创建一个新的Branch分支,作为您的工作分支,其目的是为了避免Main分支被作为直接修改和工作的位置。

其次还需要注意项目是否已经被推到仓库中!
-
选择托管但尚未点击打开过的项目,由于并没有完成第一次Checkin,因此组织内团队成员这时候暂时还看不到您托管的项目。
-
选择托管的项目只有当项目被打开之后(启动Unity引擎打开项目),系统才会自动完成第一次的Checkin(Commit)。
-
您将看到远程仓库以及分支已经自动在项目中完成创建。

1.2.5 完成托管(Hub视图)
您同时可以在Unity Hub的项目列表中看到刚才托管的项目,已经标识为已托管于远程仓库

2,如何与团队一起协作?
当需要参与组织创建的新项目,我们首先需要把项目克隆到本地工作区才能开始工作。 在克隆所在组织的项目之前,首先得确保团队组织的创建者已经将你加入组织中
2.1,加入Organization 组织
相当于同一个公司或项目小组,作为团队进行协作,共享项目的组织单元。

用户可通过
https://id.unity.cn/organizations
进行设置,自行创建组织并邀请其他成员加入进行项目协作,也可以被加入到他人所创建的组织中。

组织的普通用户身份(User)只有克隆项目的权限,而组织的所有者(Owner)或管理员(Manager)则拥有新建PlasticSCM项目的权限,你甚至可以在Unity组织内对成员进行分组(Group),以达到更灵活的团队协作。

2.2,在Hub中选择克隆项目
首先打开Unity Hub项目列表,选择PlasticSCM 标签,查看远程仓库中的项目

2.3,进行克隆
点击云按钮,从远程仓库的项目Branch分支,克隆项目到本地工作区(Workspace)路径

2.4,查看并打开已克隆项目
这时候你会发现该项目已经被克隆到项目列表中

注意事项
-
目标项目的克隆位置来自您在远程仓库中的Branch分支
-
只有当您尚未创建Branch的时候,系统会从Main创建Branch并克隆到本地
-
克隆一般只用于首次参与项目时创建本地工作区(Workspace)用
-
如果需要同步该项目中包括其他成员修改的最新进度,则不应该进行克隆,因为这样会在此重复克隆项目中自己已有的Branch分支。正确的做法是在Editor中点开PlasticSCM客户端,将Main分支Pull(拉取)到自己的Branch分支上(详细请参考 “如何Pull” 步骤)
-
对Main分支进行合并操作的权限可以打开PlasticSCM客户端进行配置

3,如何进行Pull、Push、Merge等实际操作?
3.1,如何Pull(拉取团队成员的修改)?
当团队成员完成修改时,您可以通过Pull(拉取)已合并到Main分支上的所有修改(这个步骤我们称为 Pull From Main)
3.1.1,选择Main主线分支

3.1.2,选择要把Main合并我的Branch
在Main主线分支上点击右键,选择“Merge from this changeset...”

3.1.3,Checkin
输入Comment,点击Checkin

3.1.4,Update
回到Editor中可以看到有可更新的修改

3.1.5,查看并对比所修改的内容
通过可视化界面轻松查看对比 <br>


3.1.6,确认并更新
点击Update到您的Workspace(工作区)

3.2,如何Push(提交一个Checkin到我的Branch)?
3.2.1,提交一个Checkin(Commit)
当项目准备提交的时候,保存所做的修改,它们会出现在Checkin item窗口中,在Pending changes 窗口添加一个描述,勾选提交的Items,点击Checkin changes 完成第一次的Checkin

3.2.2,Auto Save(自动 Checkin)
与此同时,我们也提供了自动Checkin的选项,如果勾选之后,每5分钟将自动保存一次,你也可以通过preference关闭这个默认选项

3.2.3,查看您的提交
提交后您将可以在Changesets中可以看到您的提交历史,同时修改也体现在你的分支上

3.3,如何Merge(给更新修改的分支做合并)?
3.3.1,确认本地修改工作
当我们在分支上做了其他更多的工作后,我们希望把这些新的工作成果合并回主线中 <br>


3.3.2,选择要合并到Main的Branch
这个时候我们在Branch分支上点击右键,选择“Merge from this changeset to...”

3.3.3,选择合并位置
这时候选择合并回主线的节点

3.3.4,检查提交合并内容
对比并确认正常的文件的差异,点击Apply Changes

3.3.5,Checkin
输入Comment,点击Checkin

3.3.6,完成从Branch分支到Main主线的合并

分支管理与版本历史的管理正是Unity PlasticSCM独一无二的优势所在,结合可视化界面将让您得心应手。
点开PlasticSCM分支视图

确认提交的修改

点击右键,从本次的修改创建一个分支

查看分支
这个时候可以看到我们的Workspace位于分支上了,意味着我们接下来回到Unity中所做的工作将存放在我们常见的分支上

P.S. 如何迁入其他现有项目
Git / Perforce / Visual Source Safe / Clearcase / TFS / Subversion 请参考以下链接:
https://www.plasticscm.com/movetoplastic
---
关于操作指南,也可以通过操作手册进行浏览:
https://docs.unity.cn/cn/Packages-cn/com.unity.plasticscm@1.0/manual/