当我在存储库中丢失一些修订时,如何转储所有 svn 数据?
Posted
技术标签:
【中文标题】当我在存储库中丢失一些修订时,如何转储所有 svn 数据?【英文标题】:How can I dump all svn data while I lost some revisions in the repository? 【发布时间】:2014-04-01 03:44:07 【问题描述】:我想转储我的旧 svn 源并将其加载到我的新计算机上。我的旧 svn 存储库大约有 100GB 大。
当我使用svnadmin dump /xx/Repositoryfile > mydump
转储svn 文件时,我得到了一个512Mb 大小的文件。最后,我找到了原因:
因为修订版 302 已丢失。我只能得到 1-301 版本的数据。
即使使用svnadmin dump /xx/Repositoryfile -r 303:90000--incremental > mydump
获取其他来源。无法加载。
如何将我所有的 svn 数据移动到新位置?
【问题讨论】:
我发现我从 /repo_dir/db/revs/ 301 636 中丢失了以下文件 【参考方案1】:如果您在存储库未处于损坏状态时(即,当它具有丢失的修订版时)备份了存储库,那么您可以修复存储库。我建议按照以下步骤修复存储库:
首先,您应该检查原始转储中是否存在除 302 之外的损坏版本。您可以使用以下命令行检查特定修订范围的一致性:
svnadmin verify /xx/Repositoryfile -r 302:HEAD
如果除了 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 以外的其他损坏的版本,您将不得不执行更多步骤,但方法仍然相同。希望对你有帮助!
【讨论】:
我的前任真的给我搞得一团糟。我没有备份可以用。似乎解决它的唯一方法是检查然后检查。这些海量数据将花费我很多时间来移动它们。T O T以上是关于当我在存储库中丢失一些修订时,如何转储所有 svn 数据?的主要内容,如果未能解决你的问题,请参考以下文章