SVN 存储库 - 丢失了一些 \db\rev 文件,因此想要从备份中交换一些文件 - 不起作用
我的 SVN 存储库 (1.4.2) 发生了不幸的开发 - 7 个变更集(\db\rev 中的文件)消失了。该存储库总共有大约 21,000 个签到信息。
我发现了一个几年前生成的 SVN Dump 文件,幸运的是它确实包含了所有缺失的修订(该转储有大约 17000 个从 0 开始的签入)。
我的目的是创建一个单独的 SVN 存储库,加载转储中的所有数据,并使用它将 7 个丢失的 rev 文件移回主 SVN 存储库位置。
我将转储文件导入到它自己的存储库中,并检查了 \db\revs 文件的内容。它们包含细微的(二进制)差异!因此,我无法简单地将重新生成的 rev 文件移动到主 SVN 存储库(我尝试过此操作,但由于文件长度和格式错误的标头等各种错误,svn 验证失败)。
我不明白为什么转储文件生成了不同格式的 rev 文件 - 我使用相同的 SVN 版本(1.4.2)和相同的操作系统环境。
有没有其他方法可以利用转储文件来重新创建我的主 SVN 存储库丢失的必要数据?我真的很想避免从头开始进行一些主要的(且有风险的)存储库重新生成。
Had an unfortunate development on my SVN repository (1.4.2) - 7 changesets (files in \db\rev) have disappeared. The reposisitory has around 21,000 check-ins in total.
I have found a SVN Dump file that was produced a few years ago, and luckily it does include all the missing revisions (the dump has around 17000 check-ins starting at 0).
My intention was to create a separate SVN repo, load in all the data from the dump and use this to move the 7 missing rev files back across to the main SVN repository location.
I imported the dump file into its own repo, and checked the content of the \db\revs files. They contained slight (binary) differences! As such I wasn't able to simply move the regenerated rev files across to the main SVN repository (I tried this but svn verify failed due to various errors such as file length and malformed headers).
I don't understand why the dump file has produced rev files in different format - I used the same SVN version (1.4.2) and same OS environment.
Is there any other way I can make use of the dump file to recreate the necessary data that my main SVN repo is missing? I've really like to avoid having to do some major (and risky) repository regeneration from scratch.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这听起来确实很奇怪。我建议您尝试从损坏的存储库中转储从 17000 到 21000 的修订(使用 --incremental 选项!)并将其加载到旧存储库中。
this sounds indeed strange. I would suggest you try to dump the revisions from 17000 to 21000 from your broken repository (use the --incremental option!) and load it into the old repository.