svn切换错误 – 是不一样的存储库
我最近移动了SVN服务器,现在我正打算将工作副本从我的电脑迁移到新的服务器上。 但是我得到了最奇怪的错误。 我做 :
svn switch http://99.99.99.new/svn/company/project/trunk/web
但是我得到了
svn: 'http://99.99.99.old/svn/company/project/trunk/web' is not the same repository as 'http://99.99.99.new/svn/company/project'
这个举动是通过转储和导入…和回购根目录是http://99.99.99.new/svn/company/project
你们有什么想法可能是错的吗? 非常感谢
尝试使用
svn switch --relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web
正如Sporino在评论中指出的那样,从Subversion 1.7开始,有一个独立的重relocate
命令:
svn relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web
此外,在TortoiseSVN中有“重新定位”选项,你应该在这样的情况下使用(而不是“开关”选项)。
做SVN重定位的最佳方式是:
svn switch --relocate $(svn info | grep ^URL | cut -f 2 --delim=' ') \ new_url_or_repository
这样,使用svn info
命令中正确的旧URL,你一定不会input错误的,这是常见的错误之一。
如果一切正确,则会提示您新位置的身份validation详细信息(如果它们不同)。
发出命令后,请务必仔细检查已经应用更改,查看URL参数,发出
svn info
搬迁后,更新你的工作副本,检查一切正常:
svn update
我的2c ..
使用relocate
命令行参数到switch
命令。
svn切换文档
有时pipe理员可能会更改存储库的“基本位置” – 换句话说,存储库的内容不会更改,但是用于到达存储库根目录的主要URL将会更改。 例如,主机名可能会更改,或URL模式,或者可能只是导致存储库的path。 您可以使用svn switch命令“重写”工作副本中所有URL的起始位置,而不是检出新的工作副本。 使用–relocate命令进行replace。 没有文件内容被改变,储存库也没有联系。 这与在运行s / OldRoot / NewRoot /的工作副本.svn /目录上运行perl脚本类似。
您需要使用–relocate选项:
svn switch --relocate http://99.99.99.new/svn/company/project/trunk/web
有关更多详细信息,请参阅svnbook 。