Unity原生版本管理工具 VersionControl- Plastic SCM 详解


团队为了方便unity开发,尝试了各种类型的版本控制工具。尝试了Github客户端和SourceTree,发现都有各种不爽,预设体等Unity3D特有文件类型经常合并失败。最后,发现还是Unity的原生版本管理工具- Plastic SCM最好使,还集成到了Unity编辑器中,如下图。




下面手把手教大家如何快速上手Plastic SCM。


文章目录

  • 一、正常安装使用顺序
  • 二、Plastic 文件忽略
  • 三、Branch 分支操作
  • 四、Plastic文件夹和项目文件夹配置
  • 五、仓库迁移方法流程
  • 六、许可证过期怎么办?
  • 七、操作注意事项及可能出现的问题

一、正常安装使用顺序

官网:https://www.plasticscm.com/download

01 :安装选择团队版,Windows.
选择默认安装选项
一定安装到C盘
一定安装到C盘
一定安装到C盘
不装C盘Unity中检测不到Revision Control 工具

注册账号 申请团队版试用

02 :创建仓库和工作空间
安装完Plastic之后会让你选择是创建仓库还是加入一个已有的仓库,一般来说第一次都选择创建一个新的仓库,然后在该仓库下创建一个工作空间.

03 :一一对应
一个repository(存储库) 对应一个 workspace(工作区),这样在切换 Branch Explorer的时候容易切换
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200901184132625.png#pic_center

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200901184136837.png#pic_center

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200901184140827.png#pic_center

04 :删除顺序
如果要删除仓库和工作空间的时候需要先将工作空间切换到其他工作空间,然后删除工作空间,再删除仓库.
先删除了仓库会怎样?

05 :项目包含顺序
将Unity的项目创建到 repository的文件夹下面,或者将仓库创建到Unity的项目下面,然后打开Plastic.

06 :分支浏览器
打开Branch Explorer 会看到一个分支名字是Main,这是你的主分支,上面有一个小房子的标志,意思是你当前的工作空间在这个节点上,你的项目的内容处于当前节点,所有的修改都是当前节点所代表的.

07 :修改缓存区
打开Pending changes,里面是你最近对仓库的修改,现在假设你已经对你的项目做出了修改,你会看到Item下面有许多项,Plastic 默认会帮你勾选Unity的改变文件,当然你也可以全选,但是不推荐全选因为里面有很多不必要的配置文件.

08:提交修改
接下来再Checkin comments里面填写你这次改动的内容,然后选择 Checkin.同步到本地

09 :和服务器同步
此时只是同步到本地,你需要到分支浏览器中找到整个项目然后右键, Replication,Sync with git,这个时候是同步到服务器端。

10 :同步过后的冲突修改
如果你只有一个人刚才那一步会直接将你的内容上传到服务器,如果是多人合作那么上传完之后他会提示你是否有冲突,如果有冲突那么你刚才的步骤则不会讲你的数据上传至服务器,这个步骤会先把服务器的数据下载下来,然后你需要将你的本地数据和服务器合并并且解决冲突,这时再重复08步骤就会将你的数据上传至服务器(前提是其他人没有在此期间做出修改并且上传至服务器).

11:合并冲突
在你的工作空间的节点上右键选择Merge from this changeset,此时你应该保证你的Pending changes里面没有其他的改变了,如果还有一些没有勾选的配置文件你不想上传,可以在 preferences, DIff and merge 里面选择 Allow to merge with pending changes.


12 :设置合并工具
Plastic支持合并的文件类型包括日常的文本文件配置文件等,但是不包括特殊类型的二进制文件,你需要在配置里面添加Unity自带的工具,选择Preferences,Merge tools,在这里面添加Unity自带的工具UnityYAMLMerge,关于添加这个工具Unity官方的文档是这样的:https://docs.unity3d.com/Manual/SmartMerge.html.接下来的步骤是这样的,在这个界面选择Add,选择External merge tool,然后路径就是:<D:\Unity_Install\Editor\Data\Tools\UnityYAMLMerge.exe> merge -p “@basefile” “@sourcefile” “@destinationfile” “@output”,这段可以直接复制过去,不过前面的中括号里面的路径要改为你的Unity的安装路径里面对应的该工具的路径,这个细节上面的文档里面有.然后选择第三个选项 Use with files that match the following pattern:, 后面的框框里面填写的是文件的格式,这里应该填写.prefab,注意前面有一个英文的句号,然后用相同的方式增加一个.unity格式.
D:\Unity\Editor\Data\Toolss\UnityYAMLMerge.exe> merge -p “@basefile” “@sourcefile” “@destinationfile” “@output”


二、Plastic 文件忽略

http://blog.plasticscm.com/2014/11/configuring-ignored-items-on-your.html
在 ignore.conf文件中直接添加文件类型 可以直接忽略该类型的所有文件.

##在Pending changes 界面,有四种类型的修改
A:add,增加
D:delete,删除
M:move,移动
C:change,更改

##忽略方式
Plastic有两种忽略方式,第一种是在Plastic中的工作空间忽略,就是上面的忽略方法.此时如果你是新添加的文件,文件的状态还有一个Check out 状态,那么你无法忽略,此时在Pending changes 里面还可以看到这个文件.并且在上传的时候会上传这个文件,所以新添加的文件想要忽略需要下面的操作.
在Unity中添加了新文件之后,在Version Control 里面可以看到你添加的问价,这个时候右键想要忽略的文件(当然也可以忽略整个列表),然后选择Revert,这样就会忽略新添加的文件而带来的改变,并且将这些文件的状态改为私有的,private。
在Plastic中的Pending Changes里面就不会看到这些改变,如果后续想要忽略这些文件可以执行第一种忽略方法.

02:Plastic的三个忽略选项

当你在Plastic的Workspace Explorer或者Pending changes选项卡中右键某个文件然后选择 Add to hiden changes list,这个时候会出来三个选项,
第一个选项就是忽略该文件,这样无论你对这个文件或者这个文件夹的内部做出什么样的改变都会被忽略掉
第二个是忽略该文件类型
第三个是忽略该路径下的该文件,此处需要注意,当你对更改了该文件的路径的时候,他的忽略就会失效.

如果你忽略了一个文件夹,那么你在该文件夹下面的操作的文件都会被默认为忽略,但是当你将这个操作的文件移动到这个文件夹外面,那么这个默认的忽略就会被移除,你需要重新对这个文件进行忽略操作.


三、Branch 分支操作

01:在服务器新建分支
02:在本地新建分支然后将更改放到新建的分支中
03:和服务器同步新建分支

如果需要建立一个稳定版本,则新建一个分支在码云,然后在本地同步先下拉分支,然后将稳定的版本保存到该分支,最后上传和服务器同步保存到码云.


四、Plastic文件夹和项目文件夹配置

01:Plastic 的配置文件夹是一个隐藏文件夹

02:正常项目操作
正常项目操作应该是在这个 .plastic 下面创建一个文件夹将项目工程放进去这样移动文件夹不会携带 Plastic 的配置文件夹


五、仓库迁移方法流程

1、新建仓库
2、删除项目中的.plastic文件,新建工作空间,文件位置选择项目位置
3、检查忽略文件,把缺失的忽略文件重新加入ignored
4、如下图,把项目加入到source中
4、ChecKin
5、下拉合并


六、许可证过期怎么办?

1、付费后,重新下载许可证,找到本地安装路径,替换。
默认替换路径:C:\Program Files\PlasticSCM5\server

七、操作注意事项及可能出现的问题

##1.工作空间删除错误
The settings you’ve introduced don’t match with the stored ones for branch/repo xxxx…Stored are:

重新安装或删除工作区,重新建立新的工作区,

##2.搜索不到本地服务器 localhost:8087

服务器没有搜索到
1、查看计算机的服务 里面的 Plastic的服务是否开启
2、防火墙导致无法连接,需要关闭windows防火墙
3、不要相信塑料的这个功能,它只能搜索到同一个网段的设备如172.16.118.xxx
开始以为网段不同,导致不同网段之间无法连接,后来发现直接输入目标的Ip地址和 端口就可以了

##3.cannot retrieve license information from the plastic scm server
服务器信息与之的服务器信息前不一样

##4.由于目标计算机积极拒绝,无法连接。127.0.0.1:8087

没有连接到同事的服务器,对方没有接收的连接服务器的信息

##5.The client authentiction mode (UPWorkingMode) doesn’t match the server authentication mode(NameWorkingMode).

客户机身份验证模式与服务器身份验证模式不匹配
删除下面添加的东西

##6.sha值问题

解决方法:
1、删除需要合并的冲突节点,直接同步
2、重建仓库

##7.许可证不能使用(不知道怎么出来的)

##8.Plastic显示保存不到本地

服务器连接的程老师那产生的 连接不到没有

##9.Unity没有显示修改的东西

在unity中重新connect

##10.plastic过期:
付费后,重新下载许可证,找到本地安装路径,替换。
默认安装路径:C:\Program Files\PlasticSCM5\server

##11.证书问题

如果你的服务器端的仓库是公开的,那么意味着所有人都可以下载.
如果你想对这个做出修改,然后提交到服务器,首先你要确定自己是否有权限,上面这个图片意思是你没有对该仓库的修改权限,确认你是使用了正确的账号和密码

##12.合并工具问题

这个是合并工具的错误,如果你和服务器发生了冲突,这个时候你在解决冲突的时候跳出了这个界面,那么应该是因为你对当前文件的合并使用了错误的工具,确认一下你当前合并文件的格式,然后在配置里面添加对应的工具.

当某个节点是绿色的虚线连接到你当前的工作空间所在的节点,这表示你有应该Checkin的文件没有提交,提交过后才能和服务器同步.

##13.预设丢失
当场景里面的预设体处于丢失状态时,大部分原因可能是本地没有该预设体文件的引用集合所代表的游戏物体.

##14.同步解决冲突后,出现不能checkin也不能Un Change的问题
原因:合并的两个人,有部分改动在ignore中,导致未完全合并
解决办法:打开PendingChanges下的Options,所有的冲突展示都勾选上,再进行合并checkin

##15.合并时,提示当前报错时,需要手动合并

##16.公网ip问题
通过路由器上网 想让外网访问我的电脑 ip
首先在你的路由器设置 DHCP服务器-静态IP地址分配-填入这台电脑的MAC地址和内网的IP地址。 转发规则- DMZ主机-选启用 填入上面分配的内网IP地址 保存 重启就行了。当外网访问你路由器公网IP地址时会直接访问你的这台主机。

Unity 原生版本管理工具VersionControl - Plastic SCM 详解相关推荐

  1. 【云原生之k8s】k8s基础详解

    [云原生之k8s]k8s基础详解 前言 一.kubernetes介绍 (1)kubernetes简介 (2)应用部署方式的演变 二.kubernetes组件 (1)kubernetes架构 (2)ma ...

  2. Android Studio CPU profiler性能分析工具介绍和使用详解

    Android Studio CPU profiler性能分析工具介绍和使用详解 CPU profiler介绍 Android Studio CPU 性能剖析器可实时检查应用的 CPU 使用率和线程活 ...

  3. python 自动化办公 案例_python自动化工具之pywinauto实例详解

    python自动化工具之pywinauto实例详解 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: python自动化工具之pywinauto实例详解.txt ] (友情提示: ...

  4. JetBrains DataGrip工具配置数据库过程详解

    JetBrains DataGrip工具配置数据库过程详解 DataGrip是一款数据库管理客户端工具,方便连接到数据库服务器,执行sql.创建表.创建索引以及导出数据等. DataGrip 是 Je ...

  5. python 单元测试 工具_Django单元测试工具test client使用详解

    The test client test client是一个python类,来模拟一个简单的"哑"浏览器,允许你来测试你的view函数.你可以使用test client完成下列事情 ...

  6. jvm性能调优工具之 jmap使用详解

    本文来说下jvm性能调优工具之 jmap使用详解 文章目录 概述 jmap用法 示例一:no option 示例二:heap 示例三:histo[:live] 示例四:clstats 示例五:fina ...

  7. linux下grep文件内容搜索工具及基本正则表达式详解

    linux下grep文件内容搜索工具及基本正则表达式详解 grep命令: 根据模式(文本字符和基本正则表达式的元字符组合而成之匹配条件)搜索文本, 并将符合模式的文本行显示出来. 格式:grep [选 ...

  8. mysql查询性能测试工具_MySQL性能测试工具MySQLslap使用实例详解

    原标题:MySQL性能测试工具MySQLslap使用实例详解 MySQLslap是MySQL(了解干货请戳:干货!超过500行的Mysql学习笔记)自带的基准测试工具,优点:查询数据,语法简单,灵活容 ...

  9. Android自动化测试环境部署及adb sdkmanager avdmanager Monitor DDMS工具使用及命令详解

    环境部署及工具使用 系列文章 前言 环境部署 硬件环境 软件环境 ADB工具 adb组成 adb命令 android命令 sdkmanager 命令 avdmanager命令 管理模拟器 monito ...

  10. Unity 之 打包参数 -- Player面板属性详解

    Unity 之 Project Setting -- Player 面板属性详解 前言 一,Player 1.1 属性说明 1.2 效果展示 二,ICON(图标) 2.1 属性说明 2.2 使用示例 ...

最新文章

  1. java解析各种文档格式_java读取各类型的文件
  2. python中hashset_python中的集合
  3. phpmyadmin创建/导入/导出mysql数据库教程_PhpMyAdmin创建/导入/导出MySQL数据库教程[图文]...
  4. python读取图片路径f.read()转化为bytes类型
  5. Visual C++ 6.0 Processor Pack 编译xvidcore1.1.0
  6. MATLAB零基础入门教程视频课程
  7. 5G标准演进过程及个人应用的发展
  8. MATLAB工具箱概述
  9. 从今天开始,每天做一件有意义的事,有进步的事
  10. 麒麟桌面系统时间相关命令介绍
  11. 为创业者搭建梦想舞台,让技术与创新说话|腾讯数字安全创新大赛 · 嘉宾访谈
  12. 【detectron】绘制loss曲线和pr曲线
  13. 全国省份地区相关常量备忘
  14. Date转LocalDateTime
  15. 大三成长日记——第二弹(批处理bat篇)
  16. TCP FIN_WAIT2定时器
  17. Utopia unlimited: reassessing American literary utopias【翻译】
  18. astash制作UML类图 简单入门教程
  19. 2022-11-30:小红拿到了一个仅由r、e、d组成的字符串 她定义一个字符e为“好e“ : 当且仅当这个e字符和r、d相邻 例如“reeder“只有一个“好e“,前两个e都不是“好e“,只有第三个
  20. 微信小程序使用video播放视频失败

热门文章

  1. CRC校验算法——C语言实现
  2. 从零开始设计一款APP之Android设计规范篇
  3. matlab均值编程,均值滤波与matlab编程
  4. java的输入输出流
  5. M2Det-一种使用新的特征金字塔方式的单阶段目标检测器(论文笔记)
  6. kaggle TMDB5000电影数据分析和电影推荐模型数据分析相关函数解释参考文章:
  7. PCL RANSAC点云配准
  8. 制作整人计算机病毒,自己制作简单病毒---三行命令的整人BAT,弹出很多窗口,一直弹到内存耗...
  9. zemax操作例子_光学软件使用实例:从Zemax导入光学系统
  10. Demo:第四章:Gateway网关