最新消息:20210917 已从crifan.com换到crifan.org

【已解决】修复/恢复TortoiseSVN的版本库/仓库(Repository)

工作和技术 crifan 8226浏览 0评论

【问题】

之前用的是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.先去创建一个版本库:

create respository here

然后就提示创建成功了:

repository created

点击OK。

5.接下来,想办法,把内容恢复出来。

然后去用BC比较了下新旧的版本库:

old new compare

可以看出,新旧的内容,主要是版本库中的数据不同。其他配置文件,基本都是一样的。

所以,尝试直接覆盖过去:

overwrite new

6.然后去别的文件夹中,尝试看看能否找到svn中的数据记录,能否正常update。

右击选择 TortoiseSVN -> Repo-browser:

repo-browser

然后打开URL对话框:

url

结果却找不到有效的svn路径。

所以,证明此直接覆盖法,还是无效的。

7.然后想了想,是不是由于之前比较两者不同时,覆盖了那个uuid所导致的。

所以就去重新新建一个版本库,然后覆盖时,保留uuid:

2nd overwrite retain uuid

然后再去别的文件夹测试,是否可以看到有效的svn:

结果还是同样的错误:

svn is not a valid url or path

svn is not a valid url or path

8.看来直接覆盖,貌似没效果,那就尝试看看是否有办法,把旧版本库的数据,导入到新建的版本库中。

不过,这次重新新建一个版本库时,注意到路径是:

file:///E:/Dev_Root/svnRoot3

的形式:

create folder structure

所以,怀疑之前是不是本身已经成功恢复版本库了,而只是路径输入的不对?

所以,继续重新再恢复一次,全部覆盖回来,然后使用上述对应的路径:

file:///E:/Dev_Root/svnRoot3

去访问,看看效果:

URL with svn file address

结果是可以正常浏览的:

can browser svn ok

所以,接着去update出来一些内容看看:

checkout downloadSongtasteMusic

然后也是可以正常checkout的:

checkout finish

所以,证明此直接覆盖版本库的办法,是可以用的。

 

【总结】

由于系统重装等原因所导致的,想要恢复之前存在的正常的svn的版本库,办法很简单:

1.在新系统中重新安装TortoiseSVN

2.新建一个TortoiseSVN的版本库

3.把旧的版本库的全部内容(通过BeyondCompare等工具)覆盖过来

即可实现恢复旧的版本库的目的,然后所有的checkout等动作,也都可以使用了。

 

注:svn的路径,是类似于这种:

file:///E:/Dev_Root/svnRoot3

其中,E:/Dev_Root/svnRoot3是当前版本库的本地路径。

如果svn的url输入错误的话,则是(当然)无法打开相关的版本库的。

 

【后记】

后来试了试,直接在SVN浏览中,输入旧的svn版本库的地址:

file:///E:/Dev_Root/svn_root/trunk

结果证明也是可以直接使用的:

old svn repository also can work

再继续去旧的某个svn的工作目录中,试了试show log:

old svn dir show log

结果证明也是可以用的:

old svn dir can show logs

所以,实际上,恢复svn版本库,不需要像上面的那样,还要麻烦新建版本库,把旧的覆盖到新的上,实际上,本地旧的版本库,可以直接使用。

而且其他旧的svn的工作目录,也都是完全可以工作的。

【总结2】

即,想要恢复旧的svn的版本库的话,则是在安装了TortoiseSVN之后,无需做任何改动,就可以直接使用旧的svn版本库了:

即,通过旧的svn的版本库的地址,可以访问到旧的svn版本库;

旧的svn的工作目录下,也是可以执行相关操作的,比如show log等等。

转载请注明:在路上 » 【已解决】修复/恢复TortoiseSVN的版本库/仓库(Repository)

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
90 queries in 0.186 seconds, using 23.43MB memory