我在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"
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好:
Committed revision 1115.
Run Code Online (Sandbox Code Playgroud)
我想要做的是将我的本地存储库副本切换到此分支,以确保一切正常,但我收到一条错误消息:
$ svn switch --relocate https://www.example.com/svn/trunk \
https://www.example.com/svn/branches/v1p2p3
Run Code Online (Sandbox Code Playgroud)
错误消息是:
svn: E155024: Invalid relocation destination:
'https://www.example.com/svn/branches/v1p2p3'
(does not point to target)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
(如果这不起作用,我怀疑我无法开始更雄心勃勃的第二分支.我正在寻找一种不会损坏现有项目布局的方法.感谢您的建议,以及如果这是一个愚蠢的问题,请道歉.)
tza*_*man 133
您不需要,--relocate因为分支在同一个存储库URL中.做就是了:
svn switch https://www.example.com/svn/branches/v1p2p3
Run Code Online (Sandbox Code Playgroud)
Laz*_*ger 36
(正确的)tzaman答案的简短版本(对于新的SVN)
svn switch ^/branches/v1p2p3
Run Code Online (Sandbox Code Playgroud)--relocate无论如何,不推荐使用switch,当它需要时你必须使用svn relocate命令
您可以使用标记(历史记录的常规RO标签)而不是创建快照分支(ReadOnly)
在Windows上,^必须转义脱字符字符():
svn switch ^^/branches/v1p2p3
Run Code Online (Sandbox Code Playgroud)