svn服务器更换了,本地的项目需要更改配置。可以重新再check out出来一份。但这样并不是必要的,本地其实已经有一份代码了,为什么还非得重新下载一份呢。可以使用svn relocate命令更改本地项目的respository。
命令: svn switch --relocate http://cms/svn/cms http://svnurl/
TortoiseSVN : 右击版本库文件夹-->relocate。输入新服务器地址
异常:
出现错误:
uuid 是 “26a2186b-f2b0-4896-a26b-377849fce918”,但是工作副本的是 “9428d3a9-ad39-c145-acea-0b45b3c4f14d”
UUID是respository创建时自动生成的一个随机数,SVN Client利用UUID判断是否为同一个resp。
处理办法:
1、重新checkout到新文件夹,同时删除本地.svn文件,然后用本地的覆盖新签下来的数据;
2、可以修改服务器上的UUID:
$ svnlook uuid /var/svn/repos cf2b9d22-acb5-11dc-bc8c-05e83ce5dbec $ svnadmin setuuid /var/svn/repos # generate a new UUID 自动生成 $ svnlook uuid /var/svn/repos 3c3c38fe-acc0-11dc-acbc-1b37ff1c8e7c $ svnadmin setuuid /var/svn/repos \ cf2b9d22-acb5-11dc-bc8c-05e83ce5dbec # restore the old UUID 手动指定 $ svnlook uuid /var/svn/repos cf2b9d22-acb5-11dc-bc8c-05e83ce5dbec
3、修改本地svn库的uuid:
记事本打开 .svn/wc.db,查找 以上的2个uuid 本进行替换,然后就可以顺利svn relocate了。
最后可能存在服务器版本低于本地版本的情况:update报错,本地revision在服务器上找不到。
处理办法:
1、checkout到新文件夹;
2、删除本地副本中的.svn文件夹;
3、将已删除.svn文件夹的本地副本,覆盖至新checkout文件夹。
完成,update吧。。