我们的项目使用SVN管理。这几天遇到了几个问题,攻克了一下。顺便做了一个总结。

1.关于使用SVN管理unity项目的一些设置和说明

首先在unity中进行两部操作:Edit->ProjectSettings->Editor菜单。选择Verion Control Mode 为VisivaleMeta File。选择Asset SeriaLization Mode 为ForceText。第一步选择外部版本号控制可见Meta文件,这样子会为Asset目录以下每一个资源创建一个.Meta文本文件,来记录unity所须要的重要信息。

重要在哪里。后面会看到。第二步是由于unity大部分文件都是二进制存储的,会频繁导致莫名其妙的冲突,会带来巨大的数据量。不能合并,另一个优点,在blame的时候比較清晰直观。

而能够merge场景带来的方便的无可计量的。文章的第二第三点环绕这个两个设置做了具体说明。

以下先谈谈SVN文件夹的创建。Window下新建的unityproject一般文件夹例如以下:

这里我们须要关心的仅仅有两个目录:Assets和ProjectSetting。前者不用多说。后者保存一些setting文件tag layerphysics等等也是必要的。而Library不过导入资源的一个缓存,网上有说法要保留各种manager文件之类,事实上不是必需的。

是剩下的都是mono或者VS产生的不用关心的。

所以正式项目一般都是本地做好须要SVN保存的两个目录,然后上传到SVNserver,这样能够在保证不影响工作的情况下把unityproject的最小量保存。

2.两个问题:预设脚本丢失和文件移动

前面常常会出现这种情况:我做好了一个prefab。包含gameobject和挂在上面的脚本,上传prefab和cs文件到SVN,但是别人pull下来project后发现你这个prefab的脚本是missing的。这个是无比让人头疼的,又一次拖一遍的工作量是巨大的,并且又一次设置脚本參数也是一件非常头疼的事情。这个问题原因就在于这就是前面提到的meta文件。Meta文件中有个重要的东西就是guid,guid是文件唯一标示,文件中的关联关系都是基于guid而不是基于文件名称和文件路径的。当一个新文件创建之后,unity会自己主动给它生成一个guid。

假设没有上传meta,所以两个project的guid不同,则关联关系自然找不到。

所以我们也必须把相应的meta文件上传。当然,假设愿意解析meta文件,然后直接改动guid就是更好的做法了。当然相对的也easy出错。

相同的。当移动或重命名资源时。确保你也对应的移动或重命名了meta文件。当脚本文件内容发生变化的时候,实际上guid是不会发生变化的。并且unity事实上并不基于文件内容增量变化的版本号管理。而是覆盖式的。

所以官方文档提到文件的移动的时候也特别小心翼翼,直接在unity中操作是最好的方式。这里特别要说明的是git和SVN的差别,在unity中新建的文件,git会默认在本地库给你找出来,然后让你提交。而SVN则不会。须要你手动的add。假设没有选择显示meta,就悲剧了。

这里就是上文提到Verion ControlMode选择可见meta的重要性了。

3关于场景的merge

前面我们提到了我们让资源序列化为text。相同的对一个场景进行改动。

A添加一个怪物,B添加了一棵树。

A先进行提交,B则必须进行merge。打开场景会告诉你有冲突,场景中什么都没有。

打开场景的文本格式,由于我们之前选择用text来存储资源,这时候的优点就来了。文件的text格式应该是这种:

Mine:

Middle:

Theirs:

Ok,这个显而易见了。具体的XXXX内容有兴趣的话能够具体的看看,可是我想。大多数的基于场景的merge应该仅仅合并不改动吧。所以说,对场景的改动之前还是团队内部要协商好,场景的merge费事并且不讨好。

也是刚用SVN管理unity项目,所曾经面两个问题还都被我遇到了。所幸涉及的反复工作量不大。上论坛的时候有看到这样一句话“用一个人当作SVN管理员。

全部东西都是通过这个管理员提交。

其余人仅仅能下载(没提交权限)。

改动的全部东西全部给管理员整合”。事实上也认为挺不错的,特别是项目大起来后。涉及美术策划和程序交互的时候,这个管理员既整合又优化,能够解决大量的合作问题。对项目非常有优点。

希望对用unity工作的团队有所帮助。

使用SVN管理unityproject相关推荐

  1. svn更新maven项目报错_使用svn管理Maven项目的方法步骤

    0. 在svn服务器中新建一个仓库 在SVN服务器的安装目录下进入bin文件夹,双击VisualAVN Server.msc即可弹出VisualAVN Server窗口 先创建一个新的仓库,右键[Re ...

  2. mac svn工具_Cornerstone 4 for mac(svn管理工具)

    Cornerstone 4 for mac是全新版本的svn管理工具,使用cornerstone for mac 特别版建立的版本控制更利于使用,而且cornerstone 4 特别版全面支持Subv ...

  3. Mac上最佳的SVN管理工具:Cornerstone

    Mac上最佳的SVN管理工具:Cornerstone  下载地址: http://www.macapp.cc/cornerstone 教程地址: http://blog.csdn.net/ldghd/ ...

  4. SVN管理工具Cornerstone之:创建分支、提交合并

    创建工程的分支: 步骤: 1.选择左下角仓库repositories中的工程名->选择trunk->点击Branch->在提示框里填写分支名称create, 2.在做上角workin ...

  5. Rancid+Subversion (SVN)管理Cisco配置

    Rancid+Subversion (SVN)管理Cisco配置(1) Ranci全称为Really Awesome New Cisco config Differ是可以与CVS(Concurrent ...

  6. 使用SVN管理Github上的项目

    使用SVN管理Github上的项目 其实git是有GUI版本的,在项目文件夹右键选择git GUI就能看到,我试用了一下,相当的简陋,尤其是代码比对功能,和SVN高下立判,好,说干就干,开始尝试把SV ...

  7. IDEA使用svn管理代码

    IDEA使用svn管理代码 第一次使用svn 设置忽略项 开始提交代码 结束!

  8. xcode 允许SVN管理项目文件

    在网上搜了下,确实只能用如下步骤来进行: 1) Create the project in XCODE. 2) Setup subversion in XCODE and select the sub ...

  9. SVN Access Manager 0.5.5.14 发布 - SVN 管理工具

    SVN Access Manager 是一个用来管理 Subversion 版本控制系统权限的工具,提供用户和组的管理,可设置读写权限. 此次更新修复了用户统计报告中的一个错误. 转载于:https: ...

最新文章

  1. webDriver测试百度登录java版
  2. asp.netcore3.0 使用 DbProviderFactories 连接数据库
  3. Coding Interview Guide -- 括号字符串的有效性和最长有效长度
  4. Apache Log4j2详解,【高级Java架构师系统学习
  5. linux下mysql单机主从配置,Linux下MySQL互为主从配置
  6. 怎样有效地推广APP
  7. Idea中的搜索快捷键
  8. 小智慧81:你和谁睡在一起
  9. 三对角、五对角追赶法求解线性方程组
  10. EAX寄存器(关键跳,关键CALL)
  11. matlab设计理想高斯巴特沃斯低通滤波器_完整二阶有源带通滤波器设计!(下载:教程+原理图+视频+代码)...
  12. 3D线激光成像数学模型简析与实现
  13. 【手绘】海贼王女帝汉库克 - 附完整手绘教程
  14. APP运行时Crash自动修复系统
  15. 链表的两种创建方法——头插法与尾插法
  16. JavaScript常见设计模式
  17. 一个软件开发者的BPM之路
  18. avformat_open_input返回-1094995529 “Invalid data found when processing input“
  19. sync_with_stdio和cin.tie(0); cout.tie(0);
  20. WEB 在线相册小系统

热门文章

  1. 下载频道12月热门资源TOP100强力推荐!
  2. Linux下安装配置git
  3. 有意思的clip-path
  4. 自定义View----滑动刻度尺与流式布局 实例(四)
  5. java 字符串转成 json 数组并且遍历
  6. centos7 hostnamectl
  7. 九度OJ 1035:找出直系亲属(二叉树)
  8. 学习笔记---将Asp.Net网站发布到IIS的四种方法及注意事项
  9. Combiner合并的使用案例
  10. 企业数字化转型需注意什么