- 首先要在virtualSVN服务端查看verify被损坏的文件版本
- 利用dump文件本分出没有损坏的文件
- 利用load命令恢复代码
检测
C:Program FilesVisualSVN Serverin>svnadmin.exe verify d:Repositories evers
d:Repositories evers这个目录为需要还原的其中一个仓库目录
如果从0-最后一个版本都是好的,就可以都还原,如果后面有损坏的,则只能还原最后一次好的版本
本次假设32的文件被损坏了,
备份
C:Program FilesVisualSVN Serverin>svnadmin.exe dump -r 0:31 D:Repositories
everse > d:svnbBakk1.dmp
当前的0:31是我们能够还原的最后的版本,因为32被损坏了
创建新仓库
我们创建一个新的仓库,用来存储被还原的代码
C:Program FilesVisualSVN Serverin>svnadmin.exe create d:/123/re
还原
将dmp的文件恢复到新的仓库中
C:Program FilesVisualSVN Serverin>svnadmin.exe load d:/123/re < d:svnbBakk1.dmp
至此未被感染的代码修复完成。
可以使用svn客户单checkout
d:/123/re目录下的代码
注意
使用命令行dmp是需要注意一些目录的存在
current是最后提交的版本号,本次例子是32,如果当前文件被损坏就自己新建一个,里面写32就行,或者写virefy的最后想要备份的文件版本,比如本次是31.
其他的都是默认的文件,如果不存在可以新建一个仓库,然后拷贝过来
uuid文件是存在客户端和服务端校验的文件,如果不存在或者被感染的话,自己新建一个,不过还原后的代码在客户端需要重新连接下载。