无法从100Gb SVN repo转储文件夹

时间:2017-04-14 20:05:09

标签: performance svn directory dump

我需要从SVN存储库中提取文件夹并保留其历史记录。所以我决定使用 svnadmin dump 命令。我的SVN回购非常庞大 - 100 Gb和120k的修订。我正在使用这个命令:

svnadmin dump D:\Repositories\SvnRepository -r 107968 | svndumpfilter --drop-empty-revs include src/build/BambooScripts | "%ProgramFiles%\7-Zip\7z.exe" a d:\temp\backup.7z -si dump.svn

因此我只指出了一个修订版,应用了一个带有我的文件夹路径的过滤器并压缩了输出。现在这个命令已经运行了4个小时。我在控制台中看不到任何进度或消息。那么我怎样才能加快这个过程或至少估计剩余时间?或者可能有另一种更好的方法从历史记录中提取存储库中的文件夹?

1 个答案:

答案 0 :(得分:0)

svnadmin dump 转储存储库中的所有路径。根据存储库的大小,即使对于单个修订版本也可能需要很长时间(SVN必须转储在该给定修订版本中存在的所有)。在转储单个修订版时,SVN不会为您提供任何进度更新。但是你可以看一下dumpfile(注意不要使用自动转换行尾字符的编辑器),但由于dumpfile的大小,如果不是不可能打开,这可能是不切实际的。

如果您只需要存储库中的单个文件夹,则可能需要使用 svnrdump

  

您甚至可以转储存储库的子树 - 这是一个   svnadmin dump无法做到。

http://svnbook.red-bean.com/en/1.7/svn.reposadmin.maint.html#svn.reposadmin.maint.migrate

在你的情况下:

svnrdump dump file:///D:/Repositories/SvnRepository/SomeFolder -r start:end > dumpfile

svnrdump没有“--drop-empty-revs”选项,但您可以使用svndumpfilter删除空修订:

svndumpfilter --drop-all-empty-revs include / < dumpfile > filtered_dumpfile