SVN";格式不正确的文件;损坏的存储库
我今天遇到了一个存储库损坏的问题 svn日志给了我“格式错误的文件”错误,尽管svnadmin verify说一切正常SVN";格式不正确的文件;损坏的存储库,svn,version-control,corruption,Svn,Version Control,Corruption,我今天遇到了一个存储库损坏的问题 svn日志给了我“格式错误的文件”错误,尽管svnadmin verify说一切正常 当您的源历史记录消失时,它总是很糟糕,因此我也会发布一个答案,以防它对某人有所帮助。备份您的存储库 运行“svnadmin dump REPOSPATH>nul” 请注意,它能够转储的上一个版本(例如99),下一个版本有错误(例如100) 从REPOSPATH\db\revprops打开错误的修订道具 如果它包含垃圾或NUL,您可以修复它: 复制之前的道具(99)而不
当您的源历史记录消失时,它总是很糟糕,因此我也会发布一个答案,以防它对某人有所帮助。备份您的存储库
- 运行“svnadmin dump REPOSPATH>nul”
- 从REPOSPATH\db\revprops打开错误的修订道具
- 复制之前的道具(99)而不是坏道具(100)
- 打开已更正的道具,将日期设置为合理的值(除非您知道文件格式,否则不要编辑任何其他内容)
再次运行“svnadmin dump REPOSPATH>nul”-在大多数情况下,当道具损坏时,它应该会无错误地完成@laktak的解决方案工作,但当@jgifford25指出的实际版本文件损坏时,则不会 理想的解决方案是:
svnadmin load/path/to/newrepo
与团队共享新回购URL或删除现有回购并使用相同路径
此外,您可以添加在无效修订后提交的有效变更集
svnadmin load /path/to/newrepo < svnbackupafterinvalid
svnadmin load/path/to/newrepo
情况并非总是如此。有时损坏的不是revprops,而是实际的rev文件。在损坏的版本上复制上一版本并不能解决此问题。正如您所指出的,良好的备份可以解决此问题。我还保存了我的bacon,因为每次提交都会创建一个增量转储。@jgifford25当然,这可能对每个人都没有帮助,但我发布了它,因为这是一个在web上其他任何地方都没有提到的简单修复。
svnadmin dump /path/to/currentrepo -r 101:HEAD --incremental > svnbackupafterinvalid
svnadmin create /path/to/newrepo
svnadmin load /path/to/newrepo < svnbackuptillvalid
svnadmin load /path/to/newrepo < svnbackupafterinvalid