我们有一个相当典型的 SVN 存储库设置,其中^/trunk
包含我们软件的当前稳定版本,并且在位于^/branches/<feature>
. 分支与主干保持同步,一旦分支功能完整,它必须通过一系列测试才能重新集成到^/trunk
.
然而,有时,我已经完成了一个功能,^/branches/A
并希望在它自己的分支中处理^/branches/B
(取决于A
^/branches/A
)中的另一个功能,然后才能将分支重新集成到^/trunk
. 从一个分支到另一个分支获取特性的最佳实践是什么,而不是不必要地“破坏”历史?
只是为了澄清我对“break”的意思:我的目标是,当^/branches/A
最终重新整合到时^/trunk
,并且我从trunk
to合并时^/branches/B
,它不应该产生任何冲突,并且当我仍然应该正确贡献工作的“责备”时最后重新^/branches/B
融入trunk
也一样。
PS:这应该适用于 svn <= 1.7,因为我们还不能切换到 1.8。
更新
由于我不想从分支创建分支(A
应该可以重新集成而无需等待B
),我尝试了以下操作:
svn cp http://repo/trunk http://repo/branches/A
<... do some changes to A, commit to A>
svn cp http://repo/trunk http://repo/branches/B
svn co http://repo/branches/B
cd B
svn merge ^/branches/A
trunk
但是,在这种情况下,即使我branches/B
在创建branches/A
. 对此有何解释?