svn switch错误-与存储库不同


76

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

你们对可能出什么问题有任何想法吗?非常感谢

Answers:


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
@Steef因此url应该与上一个相同,它将指向另一个位置?例如,svn switch --relocate .../project1/trunk/SomeDir .../project2/trunk工作辛苦吧?我需要svn switch --relocate .../project1/trunk/SomeDir .../project2/trunk/SomeDir吗?
尤金(Eugene)

1
从1.7版开始,有一个新命令relocate可以执行相同的操作。
罗伯特·库恩(RobertKühne)2013年

@Eugene使用移到新的“基本位置” svn switch --relocate http://old.location/svn/project/trunk http://new.location/svn/project/trunk。这不应是现有的存储库。然后,使用普通的switch命令到您的存储库svn switch http://new.location/svn/projects/project/trunk
Nicky Vandevoorde


7

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

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

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

如果一切正确,则将提示您提供新位置的身份验证详细信息(如果不同)。

发出命令后,请确保仔细检查是否已应用更改,请查看URL参数,然后发出

svn info

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

svn update

我的2c ..


4

relocate命令中使用命令行参数switch

svn交换机文档

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


1

您需要使用--relocate选项:

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

有关更多详细信息,请参见svnbook


感谢您的建议,但正如BastardSaint所写,您需要同时指定网址和网址
加布里埃尔·所罗门

1
糟糕的UI设计让我更多地困扰于Subversion和SVK。可能有一些特殊的用例需要您指定两个URL,但是这些工具应该采用该死的默认设置。在SVK,例如,我不应该NEED指定合并源和目标,但我做的。
克里斯·K
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.