我在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)
我做错了什么?
(如果这不起作用,我怀疑我无法开始更雄心勃勃的第二分支。我正在寻找一种不会损坏现有项目布局的方法。感谢您的支持如果这是一个愚蠢的问题,建议和道歉。)
答案 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
这是我轻松,快速地获得新分支的方式,并且通过互联网传输的数据最少
希望分享我的案例有助于并加快您的工作