svn重新定位后UUID客户端和服务器不一致的问题
最近在使用TortoiseSVN的时候,因为VisualSVN服务器的仓库地址发生了变化,需要对本地的仓库进行一下重定位(relocate),但是在进行这个操作的时候报了一个【svn The repository at svnxxxxx has uuid XXXX, but the WC has XXXX】这样的错误,如果是中文版TortoiseSVN会提示如下信息:
版本库 "https://RDServer:8443/svn/finance/" 的 uuid是 "3163c7ff-81f2-6645-ae17-932cea02b3d1",但工作副本的是"d0d64f1f-4619-2248-8bce-687ab998f712",如上图所示
注:以上的UUID在服务端是可以查看并直接复制的
打开VisualSVN Server Manager页面,在中找到相应的repository,右键查看【Propertity】,然后在Details标签页中可以看到这个仓库的uuid了,这里的uuid是可以直接复制的。
出现这个问题的原因就是SVN服务器上仓库的uuid和我们本地仓库中的uuid不一致引起的。uuid是SVN服务器在创建仓库时自动生成的一个随机数,通过这个随机数用来判断服务器和客户端的仓库是否一致,如果不一致,就会引起冲突。
需要用到svnadmin命令:(位于 SVN安装目录下面的bin目录)
注:这个命令需要在SVN服务器上执行,该命令使用cmd命令行窗口使用。
1.找到svn服务器,然后找到VisualSVN Server的安装目录下的bin文件夹,将其路径拷贝
比如C:\Program Files\VisualSVN Server\bin
2.打开cmd命令,输入cd 刚才拷贝的bin文件夹的路径,回车,然后就可以使用svnadmin命令了。
svnadmin setuuid <repos_path> <uuid>
注:<repos_path> 是你的SVN中这个项目所在的路径,比如C:\svn\Repositories\xxxx <uuid>就是你想要设置的新的UUID
你可以使用它来设置UUID。
使用svnadmin setuuid命令更新Repository的uuid.
解决办法如下:
1.首先查看项目的所有者的uuid
svnlook uuid https://RDServer:8443/svn/finance/
42b86956-73d9-2945-ba87-0546d71898f5
2.更新项目的uuid
svnadmin setuuid https://RDServer:8443/svn/finance/ 7aed1349-fe9f-9245-a4a0-02dba53eb2d3
3.查看一下更新uuid的结果
svnlook uuid https://RDServer:8443/svn/finance/
7aed1349-fe9f-9245-a4a0-02dba53eb2d3
总结
以上是生活随笔为你收集整理的svn重新定位后UUID客户端和服务器不一致的问题的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: SVN服务器更换IP地址,客户端如何重新
- 下一篇: VisualSVN服务端的安装和卸载