如何加快SVN更新?

Eti*_*neT 26 svn tortoisesvn

我们有一个相当大的SVN存储库.随着我们添加代码越多,执行SVN更新的时间越长越长.我们添加svn:externals到了一些项目中重复的文件夹,比如各种网站上的FCKeditor.这有帮助,但不是那么多.

减少更新时间和提高SVN速度的最佳方法是什么?

Ali*_*man 14

如果它是一个较旧的SVN存储库(或者甚至是新的,但没有最佳设置),它可能使用较旧的BDB样式的存储库数据库. http://svn.apache.org/repos/asf/subversion/trunk/notes/fsfs有关于新版本的说明.从一个变为另一个并不太难 - 转储整个历史记录,使用新的svn格式的文件系统重新初始化它并重新导入.同时过滤repo-dump以删除无用信息的完整签入也是有用的(例如,我删除了某人已签入的20MB + tarball文件).

就一般速度而言 - 在提高SVN工作速度方面,基于操作系统的缓存的质量(快速)硬盘和额外内存很难出错.

在客户端,如果您通过PuttyAgent进行tortoisesvn设置以便SSH访问外部存储库计算机,您还可以启用SSH压缩,这也可以提供帮助.

编辑: SVN v1.5还有fsfs-reshard.py工具,可以帮助将基于FSFS的svn存储库拆分为多个目录 - 这些目录本身可以链接到不同的驱动器主轴上.如果你有成千上万的修订版,这也可能有所帮助 - 如果除了找到一个文件之外没有其他原因需要时间(并且你通过查看IOwait时间告诉你是否存在问题)

  • 不要使用reshard工具!我用它做了很多测试,并且_slow存储库down_.请注意,使用1.5分片存储库进行简单导入,这样可以提高速度. (2认同)

Lee*_*one 10

禁用对包含工作副本代码的文件夹的病毒检查.这导致我的更新速度提高了一倍.


cee*_*yoz 5

听起来您在一个存储库中有多个项目。在适当的地方将它们分开会给你带来很大的推动。

据称,由于 Git 存储/处理更改的方式,Git 比 Subversion 快得多,但我没有第一手的经验。


Eri*_*erg 5

这不是一个真正的答案,但可能有趣的是,知道svn之所以如此I/O重的原因之一就是它在.svn/text-base目录中存储了每个文件的一个额外副本.这使得本地差异操作速度很快,但却占用了大量的硬盘空间和I/O.

http://subversion.tigris.org/issues/show_bug.cgi?id=525有详细信息.