我在文件服务器上有一个SVN repo(我知道这不是最好的做法),其中一个最新版本已损坏。我在本地复制了我的repo,路径是C:\ SVNLOCAL \ SVNRepos。腐败的提交是r 1070.我用svnadmin将我的仓库转储到r 1069(svnadmin dump C:\SVNLOCAL\SVNRepos -r 1069 > r1069.dump
)并加载(svnadmin load C:\SVNLOCAL\RECOVER < C:\SVNLOCAL\r1069.dump
)并将其加载到一个新路径但是它显示没有历史记录,即使我取消选中重命名停止。
两个问题,我可以在revs文件夹中删除1069之后的任何转速 - SVNRepos \ db \ revs \ 1 \ 1070+。我认为它并不那么简单,我确实需要进行转储和重新加载。如果是这样,我如何在保持历史完整的同时做到这一点。
基本上,我只想恢复到r1069,但是如果我尝试对着回购,它说1070有一个意外的文件结束并且停止了。我认为转储和加载是我唯一的选择。
答案 0 :(得分:1)
您需要使用两(2)个修订版参数(开始和结束修订版)。 dump命令将转储启动版本中的所有路径,并将下一个版本(直到最终版本)存储为增量。
正确的命令应该是:
svnadmin dump C:\SVNLOCAL\SVNRepos -r 0:1069 >r1069.dump
您不应删除SVN Repo中的最新修订版,因为您可能会损坏存储库。如果你有一个svn 1.8.x存储库,你至少会破坏sqllite-cache。
尝试始终操纵via dump文件。