SVN - 将工作副本指向新的 SVN 路径

91

我有一个SVN代码库,它已经移动到了新的地址/路径。但是,我有一个未提交的工作副本,它仍然指向旧的(现在无效的)代码库路径。如何将工作副本更改为指向新的代码库?

7个回答

83

svn switch --relocate在subversion的1.7版本中已经过时。请使用svn relocate命令代替。

它接受FROM-PREFIX TO-PREFIX [PATH...]TO-URL作为参数。

有关更多信息,请参见:

svn help relocate


58

使用带有--relocate命令行选项的svn switch命令。


1
谢谢。这是我使用的命令:svn switch --relocate file:///Users/user/old_repository/project/trunk file:///Users/user/new_repository/project/trunk - quano
不会修复svn:externals中的URL。有什么想法吗? - Axel Bregnsbo

29

使用 TortoiseSVN

  1. 右键单击工作副本并选择“SVN切换...”
  2. 在“切换到分支”表单上选择新的SVN路径

使用命令行

  1. 打开控制台
  2. 导航到工作副本 cd [工作副本路径]
  3. 输入命令 svn relocate [新的url]

这仅适用于使用TortoiseSVN的情况,而发帖人并没有表明他或她正在使用它。 - zck
嗨@zck,请注意我在一个答案中写了两个解决方案,第一个是TortoiseSVN,第二个是命令。但需要注意的是,这个命令在Subversion中已经被弃用了。你可以查看这个页面svn relocate/svn Subcommands - Ahmed Abdallah
好的,我评论后你编辑了回答并加入了一个命令行的方法。那个命令行的回答已经在六月份发布过了,所以没有必要重复。 - zck
不,我只是按照现有的文字发布答案,并进行了格式上的改进;而且我认为我所写的命令比六月份写的那个更清晰明了。 - Ahmed Abdallah
TortoiseSVN GUI 的方式需要点击“重定位”,而不是切换。考虑到命令行,这是有道理的。我不确定切换会做什么——它似乎试图访问旧的 URL 和新的 URL,这不是我想要的。 - Gerard ONeill

12

更加准确地说

svn switch --relocate [complete url of the old repo] [complete url of the new repo] 
例如:
svn switch --relocate  http://svn.repo.com:9880/website/branches  http://svnrepo.com/web/branches 

4

使用TortoiseSVN TortoiseSVN文档

  1. 进入工作副本的根目录
  2. 右键单击,点击TortoiseSVN子菜单,选择Relocate。
  3. 输入新路径

1

非常简单:

步骤1:打开命令提示符/终端并设置工作路径

步骤2:执行此行 svn switch --relocate http://newurl


0

我已将我的svn服务器更改为强制重定向所有HTTP到HTTPS(也可以重定向到任何其他URL),并且我注意到这个svn relocate命令会导致外部文件出现很多问题。幸运的是,我发现最简单的方法就是执行svn update,由于svn服务器的重定向,它更新了本地工作副本中存储的所有URL,包括外部文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接