svn开关错误-不是同一存储库

svn开关错误-不是同一存储库,svn,Svn,我最近移动了SVN服务器,现在我正尝试将工作副本从我的计算机重新定位到新服务器。但我犯了一个最奇怪的错误。 我有: 但我明白了 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' 移动是通过转储和导入。。。而回购根是开着的 你们有什么想法吗? 非常感谢尝试使用 svn switch --re

我最近移动了SVN服务器,现在我正尝试将工作副本从我的计算机重新定位到新服务器。但我犯了一个最奇怪的错误。 我有:

但我明白了

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'
移动是通过转储和导入。。。而回购根是开着的

你们有什么想法吗? 非常感谢

尝试使用

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以来,有一个单独的
重新定位
命令:

svn relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web
您需要使用--relocate选项:

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

有关更多详细信息,请参阅。

使用
重新定位
命令行参数切换到
开关
命令

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


此外,在TortoiseSVN中有“重新定位”选项,您应该在类似情况下使用它(而不是“切换”选项)。

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

svn switch --relocate $(svn info | grep ^URL | cut -f 2 --delim=' ') \
                      new_url_or_repository
通过这种方式,使用
svn info
命令中正确的旧url,您一定不会输入错误的url,这是常见的错误之一

如果一切正常,系统将提示您新位置的身份验证详细信息(如果不同)

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

svn info
重新定位后,更新工作副本,以检查一切是否正常:

svn update

我的2c..

谢谢你的建议,但正如Bastardsain所写,你需要同时指定从URLs和到URLs,这只是更多让我对subversion和SVK感到厌烦的糟糕的UI设计。可能有一些异国情调的用例需要您指定两个URL,但这些工具应该只使用该死的默认值。例如,在SVK中,我不需要指定合并源和目标,但我需要。。。但我在ubuntu上,所以选项不可用:)@Steef所以url应该和前一个exept相同,它将指向另一个位置?因此,例如
svn开关--relocate…/project1/trunk/SomeDir…/project2/trunk
不起作用,对吗?我需要使用
svn开关--relocate…/project1/trunk/SomeDir…/project2/trunk/SomeDir
?自subversion 1.7以来,有一个名为relocate的新命令来执行相同的操作。@Eugene relocate到新的“基本位置”,使用
svn开关--relocatehttp://old.location/svn/project/trunk http://new.location/svn/project/trunk
。这不应该是现有的存储库。然后使用普通开关命令切换存储库
svn开关http://new.location/svn/projects/project/trunk
svn update