【问题标题】:Unable to dump a folder from 100Gb SVN repo无法从 100Gb SVN 存储库转储文件夹
【发布时间】:2017-09-11 02:59:18
【问题描述】:

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

【问题讨论】:

    标签: performance svn directory dump


    【解决方案1】:

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

    如果您只需要存储库中的一个文件夹,您可能需要使用 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多