从主干到分支的Svn交换机
我在一个SVN托管项目的从主干到分支的Svn交换机,svn,branch,trunk,Svn,Branch,Trunk,我在一个SVN托管项目的trunk的根文件夹中,正在探索建立两个分支 一个分支将是当前(稳定)版本中项目的“快照”,第二个分支将是我将致力于应用一些新代码、测试,然后将主干升级到新版本的分支 我的目标是保持快照作为保险,并快速获得项目的较旧、稳定版本。第二个分支,一旦我们应用新代码并通过测试,将被合并回主干中,我们将向公众提供主干 为了设置快照,我将我们的trunk复制到一个名为v1p2p3的分支: $ svn cp https://www.example.com/svn/trunk \
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)
我做错了什么
(如果这不起作用,我怀疑我无法开始更雄心勃勃的第二个分支。我正在寻找一种不会破坏现有项目布局的方法。感谢您的建议,如果这是一个愚蠢的问题,我深表歉意。)您不需要--重新定位
,因为该分支位于同一存储库URL中。只要做:
svn switch https://www.example.com/svn/branches/v1p2p3
- (正确)tzaman答案的简短版本为(对于新SVN)
开关无论如何都不推荐使用,当需要时,您必须使用--relocate
命令svn relocate
- 您可以使用标记(历史记录的常规RO标签),而不是创建快照分支(只读)
^
)必须转义:
svn switch ^^/branches/v1p2p3
在我的例子中,我想签出一个最近被削减的新分支 但它的体积很大,我想节省时间和互联网带宽,因为我在一个低速网络中 因此,我
记录了我已经签入的上一个分支
我转到了工作目录,从svn info中,我可以看到它位于上一个分支上,我执行了以下命令(您可以在svn开关--help
中找到此命令)
再次检查svn信息
您可以看到它正在成为新牧场的名称继续并svn向上
这就是我如何轻松、快速地在互联网上以最少的数据传输获得新分支的原因
希望分享我的案例能帮助并加快您的工作谢谢您的快速帮助。我假设切换到此URL后的任何更改都将使主干保持独立,对吗?是的。当WC指向分支时,进一步提交将只提交到该分支。您可以使用svn info
+1检查提交的位置,以建议标记:“快照作为保险,快速获得较旧、稳定的版本”听起来像是标记的经典用例,通常是作为发布过程的一部分创建的。
svn switch ^^/branches/v1p2p3
svn switch ^/branches/newBranchName