美文网首页
SVN更换新仓库地址, 以及UUID不同的解决方式

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

作者: 帅气滴糟老头 | 来源:发表于2018-12-20 19:21 被阅读0次

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

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

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

    上面是用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,如下图

    然后选择Choose another database

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

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

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

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

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

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

    select * from REPOSITORY;
    

    选中代码右键运行

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

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

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

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

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

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

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

    相关文章

      网友评论

          本文标题:SVN更换新仓库地址, 以及UUID不同的解决方式

          本文链接:https://www.haomeiwen.com/subject/tgkukqtx.html