Svn从主干切换到分支

时间:2013-02-01 23:01:00

标签: svn branch trunk

我在SVN托管项目的trunk的根文件夹中,正在探索设置两个分支。

一个分支将是当前(稳定)修订版中项目的“快照”,第二个分支将是我将用于应用一些新代码,测试,然后将主干升级到新的分支版。

我的目标是将快照保留为保险,并快速获取我们项目的较旧,稳定版本。第二个分支,一旦我们应用新代码并且测试通过,将合并回主干,我们向公众提供。

要设置快照,我将trunk复制到名为v1p2p3的分支:

$ svn cp https://www.example.com/svn/trunk \ 
         https://www.example.com/svn/branches/v1p2p3 \
         -m "Branching from root trunk to v1p2p3 at r1114"

到目前为止,非常好:

Committed revision 1115.

我想要做的是将我的本地存储库副本切换到此分支,以确保一切正常,但我收到一条错误消息:

$ svn switch --relocate https://www.example.com/svn/trunk \
                        https://www.example.com/svn/branches/v1p2p3

错误消息是:

svn: E155024: Invalid relocation destination: 
              'https://www.example.com/svn/branches/v1p2p3' 
              (does not point to target)

我做错了什么?

(如果这不起作用,我怀疑我无法开始更雄心勃勃的第二分支。我正在寻找一种不会损坏现有项目布局的方法。感谢您的支持如果这是一个愚蠢的问题,建议和道歉。)

3 个答案:

答案 0 :(得分:126)

您不需要--relocate,因为分支位于同一个存储库URL中。只是做:

svn switch https://www.example.com/svn/branches/v1p2p3

答案 1 :(得分:33)

  • (正确的)tzaman答案的简短版本(对于新的SVN)

    svn switch ^/branches/v1p2p3
    
  • 无论如何
  • --relocate开关已被弃用,当需要时,您将不得不使用svn relocate命令

  • 您可以使用标记(历史记录的常规RO标签)而不是创建快照分支(ReadOnly)

在Windows上,必须转义脱字符(^):

svn switch ^^/branches/v1p2p3

答案 2 :(得分:2)

就我而言,我想check out的{​​{1}}最近被删减 但它太大了,我想节省时间和互联网带宽,因为我处在缓慢的计量网络中

所以我new branch已经签入

我进入了工作目录,从svn信息中,我可以看到它在上一个分支中,我执行了以下命令(您可以从copped the previous branch中找到此命令)

svn switch --help

再次检查svn switch ^/branches/newBranchName ,您会看到它变成了newBranchName,svn info

这是我轻松,快速地获得新分支的方式,并且通过互联网传输的数据最少

希望分享我的案例有助于并加快您的工作