【问题】
之前用的是32位的win7,后来重装成了64位的win7,所以之前32位win7下的TortoiseSVN,就算是挂了。
当然,本地电脑上,还留有之前的SVN的版本库的。
所以现在希望把版本库恢复出来,保证可以正常使用。
【解决过程】
1.网上找了下svn版本库的恢复,竟然搜到一篇之前自己写的一个帖子:
【已解决】SVN server挂了_Work and Job -> 【已解决】SVN server挂了
不过,看了后,对于当前恢复版本库,没啥参考价值。
2.找到了TortoiseSVN在线中文手册,不过貌似没有找到如何恢复版本库的内容。
3.先不管了,去官网先现在了最新版的TortoiseSVN-1.7.9.23248-x64-svn-1.7.6.msi,然后再安装。
4.先去创建一个版本库:
然后就提示创建成功了:
点击OK。
5.接下来,想办法,把内容恢复出来。
然后去用BC比较了下新旧的版本库:
可以看出,新旧的内容,主要是版本库中的数据不同。其他配置文件,基本都是一样的。
所以,尝试直接覆盖过去:
6.然后去别的文件夹中,尝试看看能否找到svn中的数据记录,能否正常update。
右击选择 TortoiseSVN -> Repo-browser:
然后打开URL对话框:
结果却找不到有效的svn路径。
所以,证明此直接覆盖法,还是无效的。
7.然后想了想,是不是由于之前比较两者不同时,覆盖了那个uuid所导致的。
所以就去重新新建一个版本库,然后覆盖时,保留uuid:
然后再去别的文件夹测试,是否可以看到有效的svn:
结果还是同样的错误:
svn is not a valid url or path
8.看来直接覆盖,貌似没效果,那就尝试看看是否有办法,把旧版本库的数据,导入到新建的版本库中。
不过,这次重新新建一个版本库时,注意到路径是:
的形式:
所以,怀疑之前是不是本身已经成功恢复版本库了,而只是路径输入的不对?
所以,继续重新再恢复一次,全部覆盖回来,然后使用上述对应的路径:
去访问,看看效果:
结果是可以正常浏览的:
所以,接着去update出来一些内容看看:
然后也是可以正常checkout的:
所以,证明此直接覆盖版本库的办法,是可以用的。
【总结】
由于系统重装等原因所导致的,想要恢复之前存在的正常的svn的版本库,办法很简单:
1.在新系统中重新安装TortoiseSVN
2.新建一个TortoiseSVN的版本库
3.把旧的版本库的全部内容(通过BeyondCompare等工具)覆盖过来
即可实现恢复旧的版本库的目的,然后所有的checkout等动作,也都可以使用了。
注:svn的路径,是类似于这种:
其中,E:/Dev_Root/svnRoot3是当前版本库的本地路径。
如果svn的url输入错误的话,则是(当然)无法打开相关的版本库的。
【后记】
后来试了试,直接在SVN浏览中,输入旧的svn版本库的地址:
file:///E:/Dev_Root/svn_root/trunk
结果证明也是可以直接使用的:
再继续去旧的某个svn的工作目录中,试了试show log:
结果证明也是可以用的:
所以,实际上,恢复svn版本库,不需要像上面的那样,还要麻烦新建版本库,把旧的覆盖到新的上,实际上,本地旧的版本库,可以直接使用。
而且其他旧的svn的工作目录,也都是完全可以工作的。
【总结2】
即,想要恢复旧的svn的版本库的话,则是在安装了TortoiseSVN之后,无需做任何改动,就可以直接使用旧的svn版本库了:
即,通过旧的svn的版本库的地址,可以访问到旧的svn版本库;
旧的svn的工作目录下,也是可以执行相关操作的,比如show log等等。