迁移 Subversion 存储库但 svnadmin 加载导致内存不足错误

迁移 Subversion 存储库但 svnadmin 加载导致内存不足错误

我们在 Windows Server 2003 上有一个 Subversion 存储库,想将其移动到运行 Server 2008 R2 64 位的新服务器。新服务器有 8 GB 的 RAM。

我希望转储并加载整个存储库,因为它目前处于 1.5 之前的格式。存储库有超过 20,000 个修订版本。在修订版本 12900 上,无论我如何尝试导入该版本,svnadmin 进程都会耗尽内存。

我尝试过从一个大型转储文件加载整个内容。我尝试过将整个转储直接传输到加载中。我也尝试过以两种方式执行较小的修订集。甚至只尝试单独执行这一修订。

该进程在任务管理器中使用了大约 1998 MB 内存,然后终止并出现以下错误:

D:\Repositories\svnrepos>svnadmin load ./ < c:\Backup\svn_12900.dmp <<< 根据原始修订版 12900 开始新的事务 * 编辑路径:.../Bld/Installers... 完成。* 编辑路径:.../Bld/Installers/xyxSetup.exe... 完成。* 编辑路径:.../Installers/xyxyWebSetup.exe... 完成。* 编辑路径:.../Bld/Src...内存不足 - 终止应用程序。

此应用程序已请求运行时以异常方式终止它。请联系应用程序的支持团队以获取更多信息。

我检查了此修订号的日志,它实际上只是提交了一次自动构建,因此安装程序可以正常导入,然后在失败时仅导入 AssemblyInfo.cs 文件中的版本号。

我不确定我还应该尝试什么?

答案1

在 64 位 Windows 上使用 32 位版本的 svn 意味着 svn 只能分配 2GB 内存。获取 64 位版本的 subversion。

我已经不记得 svn 的流加载算法了,但是它可能会认为你有 8GB 可用空间,并且当它本身无法管理超过 2GB 的空间时就会终止。

答案2

我建议将这个问题邮寄给[电子邮件保护],因为此列表包含许多 Subversion 系统管理员。其中至少有几个人可能以前见过此问题。

答案3

尝试 svn-kit。它是 subversion 的 java 端口。

相关内容