虽然svn并不是管理unity工程,或者所有游戏工程的最好的cvs。实际使用svn也给我们带来了很多困扰,尤其是上传版本过于零碎导致本版本回滚十分累。使用git会好很多。

但是每个公司都有些legacy的东西,有些只能适应。

如果从头开始的话还是使用perforce和git管理,或者unity自带的版本管理。

这篇文章里面有怎么用利用svn管理unity项目的完整方法。

http://gamedev.stmartins.edu/2011/07/unity-workflow-with-svn-for-small-teams/

这里翻译一下其中的7点建议再加上自己的一些经验总结:

  1. 不要同时修改同一个asset(无论是 scene/prefab/material/texture),如果要修改用svn lock先把当前的修改锁住。
  2. 不要忘记把asset想过的metadata传入svn。
  3. 不要忘记在删除asset之后删除与之相关的metadata文件
  4. 做任何svn操作之前应该先关闭unity(这一点在commit的时候尤为重要。实践中发现:关闭unity后,有些改动才会存入prefabs)
  5. 先update在commit
  6. 在update之后应该先运行leanAndMean batch文件。(这条我不懂原文贴上:thou shalt run the leanAndMean batch file after an update)
  7. 如果没有做过改动的话就不要保存scene,因为这样会造成无用的commit。
  8. 如果在不同的场景公用prefab,该prefab如果和层级相关的话,最好从根节点开始交由一个人管理;如果和层级无关就无所谓了。
  9. 代码要保持line ending和编码统一,编码统一使用utf-8 with bom。