我想转储旧的svn源并将其加载到我的新计算机上。我的旧svn存储库大约100GB。
当我使用svnadmin dump /xx/Repositoryfile > mydump
转储svn文件时,我得到了一个512Mb大小的文件。最后,我找到了原因:
因为修订版302已丢失。我只能获得1-301修订版的数据。
即使使用svnadmin dump /xx/Repositoryfile -r 303:90000--incremental > mydump
获取其他来源也是如此。它无法加载。
如何将我的所有svn数据移至新位置?
答案 0 :(得分:3)
如果您在存储库未处于损坏状态时(即,当它具有丢失的修订版本时)备份存储库,那么您可以修复存储库。我建议按照以下步骤修复存储库:
首先,您应检查原始转储中是否存在302以外的损坏修订。您可以使用以下命令行检查特定修订版本范围的一致性:
如果除了302之外没有损坏的修订版,那么你应该全部转储 有效的修订。
svnadmin dump /xx/Repositoryfile -r 0:300 > dump1.dmp
svnadmin dump /xx/Repositoryfile -r 302:HEAD > dump2.dmp
找到301版本未损坏的存储库备份,仅转储此版本:
svnadmin dump /xx/Repositoryfile -r 301 > dump3.dmp
创建一个干净的存储库(通过命令svnadmin create <repo-name>
)并逐个加载所有这些转储((!)请注意dump3.dmp
必须按第二顺序加载)。
svnadmin load <repo-path> < dump1.dmp
svnadmin load <repo-path> < dump3.dmp
svnadmin load <repo-path> < dump2.dmp
这样您将恢复存储库。如果除了301之外还有其他损坏的修订版,则必须执行更多步骤,但方法仍然相同。我希望它有所帮助!