svn switch错误 - 不是同一个存储库

时间:2009-05-29 12:14:43

标签: svn svn-switch migrating

我最近移动了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'

移动是通过转储和导入进行的......并且repo根位于http://99.99.99.new/svn/company/project

你们有什么想法可能有什么不对吗? 非常感谢

5 个答案:

答案 0 :(得分:130)

尝试使用

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

答案 1 :(得分:23)

另外,在TortoiseSVN中有“Relocate”选项,您应该在这种情况下使用它(而不是“Switch”选项)。

答案 2 :(得分:7)

进行SVN重定位的最佳方式是:

svn switch --relocate $(svn info | grep ^URL | cut -f 2 --delim=' ') \
                      new_url_or_repository

通过这种方式,使用svn info命令中的正确旧URL,您肯定不会输入错误的错误,这是常见的错误之一。

如果一切正确,系统会提示您输入新位置的身份验证详细信息(如果不同)。

发出命令后,请务必仔细检查是否已应用更改,并查看URL参数,发出

svn info

重新定位后,更新您的工作副本,检查一切正常:

svn update

我的2c ..

答案 3 :(得分:4)

relocate命令行参数用于switch命令。

svn switch documentation

  

有时管理员可能会更改存储库的“基本位置” - 换句话说,存储库的内容不会更改,但用于到达存储库根目录的主URL会更改。例如,主机名可能会更改,或URL架构,或者可能只是导致存储库的路径。您可以让svn switch命令“重写”工作副本中所有URL的开头,而不是签出新的工作副本。使用--relocate命令进行替换。没有更改文件内容,也没有联系存储库。它类似于在工作副本上运行perl脚本.svn /目录运行s / OldRoot / NewRoot /.

答案 4 :(得分:1)

您需要使用--relocate选项:

svn switch --relocate http://99.99.99.new/svn/company/project/trunk/web

有关详细信息,请参阅svnbook