转自:http://blog.sina.com.cn/s/blog_63733daa0100y5hv.html
问题:
我们的项目里,服务器脚本工程svn地址为:svn://server/script;配置文件地址为:svn://server/cfg。都是独立的仓库。有一天,对外发布人员觉得每次都Update两次很烦,说能否把类似这种目录都放在一个仓库里,只需要Update一次就可以了。
是否所有资源、代码都用一个仓库就ok了呢?千万不要这么做,因为
svn的效率很低!
svn在管理代码这种文本文件(而且相比美术资源体积不大,文件不算多)的时候,下载、上传、查上传log速度还是可以接受的。我们已经做了多年的仓库依然能应付过来。
但是管理二进制文件的时候,速度实在是慢的令人发指,角色、场景这种容量、文件数比较夸张的目录,完全下载一次甚至可以用掉4个小时。随着时间流逝,历史记录越来越长,下载速度就越来越难以容忍了。
解决方案:
把不同种类的资源放在不同的仓库里,具体怎么放可以由有经验的资源管理人员安排。然后,建立一个资源主干仓库。里面用文件夹链接的形式,存放各种资源。
资源管理员一旦设置好svn:externals属性之后,对用户来说,上传、下载都没有区别,就好像文件夹真的在主干仓库里一样。
等过了一段时间,例如半年,某一种资源太多需要清理的时候。管理员把现有资源干净的拷贝出来到新仓库(或者新目录),例如cha目录下所有文件拷贝到cha2目录,只要最后的结果文件不要svn信息。然后修改svn文件夹链接的地址。
修改好后,用户直接使用就ok了。达到了不影响其他人员的同时优化svn速度的目的。
(仅试验过,还没有在项目里实用,最后一步用户更新时可能会有冲突)
TortoiseSVN操作方法:右键->TortoiseSvn Properties->如下图编辑