我在使用我们的 SVN 存储库/项目之一时遇到了令人痛苦的缓慢操作。
例如,恢复一个小文件 (10 KB) 中的更改需要 5-10 分钟。或者大约 40-60 分钟来检查 100 MB 的项目。
同一台服务器上还有大约 30 个其他项目,其中一些比这个大得多,而且没有一个是这样的。
需要注意的一点是,这个项目是一个Magento项目。就磁盘空间而言,它不是很大,但我有 23k 个文件和 11k 个文件夹,当有很多小文件时,我读得很糟糕;这是真的?我能做些什么来加快速度吗?
当有大量目录时,Subversion 工作副本的性能很差,就像你的情况一样。对于对工作副本的写操作(甚至仅在本地),必须锁定工作副本,这意味着在每个目录中创建一个锁定文件(即创建 11k 文件),然后执行操作,而这 11k 文件是又删了。
Subversion 1.7 正在转向不同的工作副本格式,应该可以解决这些问题。在此之前,您可能会尝试一些技巧来加快速度,例如从病毒扫描程序中排除工作副本,禁用目录上的文件监视器(如 TortoiseSvnCache),并尝试减少目录的总数。(也许通过检查几个单独的工作副本)
使用带有 revert 的回收站存在一个已知问题,这会导致恢复缓慢。清空回收站并设置 TortoiseSVN 在还原操作期间不使用它都可以加快此操作(请参阅http://www.nabble.com/Revert-is-too-slow-td18222196.html)。
这无疑加快了我的还原操作。
更改密码后,我在 Windows 上使用 Subversion 时遇到了极其缓慢的情况。我不得不从中删除所有目录和文件%APPDATA%\Subversion\auth
。
现在 SVN 快得像野兔了。我的缓慢是通过 TortoiseSVN 和命令行发生的。
如果您使用 NFS(网络文件系统)作为工作副本,SVN 会很慢。这可能是你的问题。
我们也遇到过类似的问题,问题是 TortoiseSvn(版本 1.9.7)。例如,repo browser
初始化大约需要 10 分钟。
我们已经关闭了该Show Locks
功能并修复了所有问题!
右键单击一个文件夹,然后选择然后Tortoise\Settings
取消选择General\Dialog 3
Show Locks
恢复 SVN 中的更改是一个本地操作,根本不应该去服务器。所以听起来好像问题出在项目的工作副本中。
尝试在工作副本中运行“svn cleanup”;您可能还想检查硬盘驱动器或文件系统是否有问题。
通过 TortoiseSVN、 Eclipse和命令行,我们的 SVN 运行缓慢。承诺和出口缓慢。我们基于Zend 框架的 PHP 项目需要很长时间才能更新,并且弹出大约三个文件的小提交将需要 5-10 分钟。
我们的 SVN 虚拟机 ( CentOS ) 只有 700 MB 的 RAM,这对于仅通过Apache运行 Subversion 的 Linux CLI 来说似乎是合理的,并且已经运行了大约一年。我们只有大约 20 个项目,只有三个开发人员。
我已经将它提升到 1.5 GB 的 RAM,现在运行速度要快得多,回到我们原来的速度。
升级到 TortoiseSVN 1.7.3 后,我的速度也大幅下降。
然后我发现我单独安装了 SVN 1.6.5。我卸载了两者并重新安装了 TortoiseSVN,现在情况好多了。TortoiseSVN 当天的第一次更新仍然很慢(1-2 分钟),但之后很快。
我有一些使用 Eclipse IDE 的项目。如果您捕获 Eclipse 项目目录,您将获得成百上千个小文件,这些小文件对我的项目的影响与您对您的项目的影响相同。
我认为当您检查文件时,SVN 一次只检查一个,这意味着具有大量文件的项目总是会很慢,而且您无能为力(除了避免频繁的整个存储库操作)。
不过,对单个文件进行更改应该不会很慢。
您可以尝试Stack Overflow 上关于慢速 SVN 的另一篇文章中的建议。这也可能是由于使用了 BDB 数据库。