我最近搬到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

在这种方式,使用正确的旧的URL从svn info命令,你肯定不输错了一个,这是常见的错误回报之一。

如果一切是正确的,你将与AUTH细节新位置提示,如果它们是不同的。

发出命令后,一定要仔细检查的变化已经被应用在看URL参数,发布

svn info

搬迁后,更新你的工作拷贝,检查一切正常:

svn update

我2C ..

使用relocate命令行参数来switch命令。

SVN开关文档

  

有时候管理员会修改版本库的“基本位置” - 换句话说,该资源库的内容不会改变,但使用的主要URL来访问的库做了根。例如,主机名可能会改变,或者URL模式,或者只是导致库中的路径。而不是签了新的工作副本,你可以在你的工作拷贝使用svn switch来“改写”的所有URL的开端。使用--relocate命令做替换。没有文件内容被改变,也不是联系了仓库。它类似于在你的工作副本的.svn /目录运行perl脚本运行S / OldRoot / NewRoot /.

您需要使用--relocate选项:

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

svnbook 获得更多的细节。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top