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 。