如何恢复损坏的SVN仓库 - SVNREPO/db/current

最近我的SVN服务器上存储库中的项目被损坏。经过检查,我们发现,在 svnrepo/db/current 文件中发现,由于我硬盘坏扇区被损坏了。我试图checkout这个仓库,但失败了。

如何恢复损坏的SVN仓库 -

开始恢复之前,我们应该知道此文件。该文件包含存储库的最新版本号。每次提交SVN服务器增长+1这个值,并保持这个去修订。 现在,如果你还记得你的资料库的版本,只需重新创建新的文件,并把这个文件号码。但是,如果你不记得它,那么问题的开始,但不要担心。请按照以下步骤查找版本号。
  • 输入任意号码 -

    输入一个数字,并尽量保持它比预期的最后一个版本更高。在我来说,对于我,已在 db/current 文件放在99999。
    rahul@howtoing.com:~$ cat db/current
    
    99999
  • 备份库 -

    现在使用以下命令备份此存储库。当您运行下面的命令,它可能会错误这样结束下方。
    rahul@howtoing.com:~$ svnadmin dump /path/to/repo > /backup/myrepo.dump
    
    
    * Dumped revision 0.
    * Dumped revision 1.
    ...
    ...
    * Dumped revision 576.
    * Dumped revision 577.
    * Dumped revision 578.
    svnadmin: E160006: No such revision 579
    根据你的输出,我们得到了我们的资料库有578版本。你可以把这个值在 db/current 文件。但是,如果有损坏的任何文件,然后继续下面的步骤。
  • 再次备份库 -

    现在我们有最后一个版本号,那么指定0修订最新修订备份。
    rahul@howtoing.com:~$ svnadmin dump -r 0:578 /path/to/repo > /backup/myrepo.dump
  • 重新创建新的存储库 -

    现在,删除旧损坏的存储库,并创建新的具有相同名称或其他名称。
    rahul@howtoing.com:~$ mv /path/to/repo /backup/
    rahul@howtoing.com:~$ svnadmin create /path/to/repo
  • 从备份载入存储库 -

    现在,使用以下命令备份文件加载库数据。
    rahul@howtoing.com:~$ svnadmin load /path/to/repo < /backup/myrepo.dump