SVN更换新仓库地址, 以及UUID不同的解决方式

打开命令行窗口,定位到项目得目录,也就是.svn文件所在的目录,运行如下命令:

svn relocate 旧的svn地址 新的svn地址

这时候会报错,一般是如下错误:

SVN更换新仓库地址, 以及UUID不同的解决方式_第1张图片

上面是用TortoiseSVN界面操作时报的错,意思是本地仓库的uuid跟服务器仓库的uuid不一致,前面的是服务器仓库的uuid。将其复制保存,然后关闭窗口。
uuid是仓库创建的时候生成的, 本地客户端也会拿它来对比是否是同一个svn仓库, 解决方法有两种:

  1. 重新checkout
    相当于推到从来,如果本地没有新的代码可以用这种方法,如果有未提交的代码可就麻烦了
  2. 修改本地uuid
    .svn文件下有一个wc.db文件,里面有一张REPOSITORY表,第一行就是uuid(一般是只有一条记录, 修改后会有两条)

接下来我们就来修改这个wc.db文件,我采用的工具是VSCode编辑器,安装SQLite插件,插件安装这里不做介绍,然后具体操作步骤如下:
快捷键ctrl+shift+p调出命令行,输入sqlite,在跳出的提示中选择Open Data in Explorer,如下图

SVN更换新仓库地址, 以及UUID不同的解决方式_第2张图片

然后选择Choose another database

SVN更换新仓库地址, 以及UUID不同的解决方式_第3张图片

跳出文件选择器,找到要编辑的wc.db文件,打开

SVN更换新仓库地址, 以及UUID不同的解决方式_第4张图片

这样我们就打开了wc.db数据库,可以看到REPOSITORY表中的uuid列,如下

SVN更换新仓库地址, 以及UUID不同的解决方式_第5张图片

上面只是要看看sc.db的结构,其实可以跳过上面直接开始下面的操作,再次使用快捷键ctrl+shift+p,在弹出框中输入sqlite,然后选择New Query,如下

SVN更换新仓库地址, 以及UUID不同的解决方式_第6张图片

然后我们就新建了一个sql文件,如下

SVN更换新仓库地址, 以及UUID不同的解决方式_第7张图片

注意:上图右下角箭头指向的区域,显示的是这个查询文件关联的数据库,这里关联的是wc.db,如果不是这个文件或者显示为空,那就点击,在弹出框中选择Choose Another Database,在文件夹中找到要修改的wc.db文件选中。

我们来查看下REPOSITORY表,输入如下查询语句

select * from REPOSITORY;

选中代码右键运行

SVN更换新仓库地址, 以及UUID不同的解决方式_第8张图片

右边会跳出查询结果窗口,发现空空如也,不要慌,这可能是个bug

SVN更换新仓库地址, 以及UUID不同的解决方式_第9张图片

既然不让查看,那我就直接更改,输入如下代码

update REPOSITORY set uuid="这里输入之前保存的服务器仓库的uuid" where id=1; 

选中代码,右键Run Query运行,结果会跟刚才一样,空空如也,不过更改已经生效了

再次做最开始的操作,更换新仓库地址,命令如下

svn relocate 旧的svn地址 新的svn地址

这回显示更换成功,下图是ToroiseSVN的操作界面

SVN更换新仓库地址, 以及UUID不同的解决方式_第10张图片

你可能感兴趣的:(SVN更换新仓库地址, 以及UUID不同的解决方式)