如何重命名SVN分支并更新现有沙箱中的引用?

Lee*_*ton 44 svn branch rename

我需要重命名一个SVN分支,所以我做了:

$ svn move https://server/repos/myrepo/branches/oldbranch \
    https://server/repos/myrepo/branches/newbranch

到目前为止,这么好 - 分支已经重命名.

麻烦的是,我们已经从这个分支检出了现有的沙箱,当我尝试更新时,我得到了这个错误:

$ svn update
svn: Target path '/branches/oldbranch' does not exist

一个相当不言自明的错误.经过快速搜索,我认为我找到了解决方案:在分支重命名后重新定位SVN工作副本

麻烦的是,当我尝试发出该命令时,我得到另一个错误:

$ svn switch --relocate https://server/repos/myrepo/branches/oldbranch \
    https://server/repos/myrepo/branches/newbranch
svn: Relocate can only change the repository part of an URL

据我所知,我使用的--relocate命令与Sander Rijken一样.有什么想法我得到这个错误?

khm*_*ise 53

做就是了

svn switch https://server/repos/myrepo/branches/newbranch
Run Code Online (Sandbox Code Playgroud)

从你的工作副本中.

  • 我无法相信您的工作副本中将删除未版本控制的文件... (10认同)
  • `从你的工作副本中` => 你的意思是“`cd [oldbranch]`,然后从那里输入命令`svn switch [...]`? (2认同)

Laz*_*ger 5

要更改相对路径,您必须使用 svn switch(无论如何switch --relocate都已弃用),如svn help switch第一种形式所写

switch URL[@PEGREV] [PATH] 更新工作副本以镜像存储库中的新 URL。

 This behavior is similar to 'svn update', and is the way to
 move a working copy to a branch or tag within the same repository.
Run Code Online (Sandbox Code Playgroud)

即WC的根oldbranch,也就是现在newbranch,你必须使用

svn switch ^/branches/newbranch