我们有一个相当典型的 SVN 存储库设置,其中^/trunk包含我们软件的当前稳定版本,并且在位于^/branches/<feature>. 分支与主干保持同步,一旦分支功能完整,它必须通过一系列测试才能重新集成到^/trunk.
然而,有时,我已经完成了一个功能,^/branches/A并希望在它自己的分支中处理^/branches/B(取决于A^/branches/A)中的另一个功能,然后才能将分支重新集成到^/trunk. 从一个分支到另一个分支获取特性的最佳实践是什么,而不是不必要地“破坏”历史?
只是为了澄清我对“break”的意思:我的目标是,当^/branches/A最终重新整合到时^/trunk,并且我从trunkto合并时^/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. 对此有何解释?