我需要从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个小时。我在控制台中看不到任何进度或消息。那么我怎样才能加快这个过程或至少估计剩余时间?或者可能有另一种更好的方法从历史记录中提取存储库中的文件夹?
答案 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