合并 svn feature 分支到 release 分支

merge svn feature branch to release branch

我有一个主干,我从中创建了一个发布分支(我已经完成了它的工作,已经提交)。在此之后,我从主干创建了一个功能分支,现在我准备将它重新集成到主干中,使用 svn merge --reintegrate。

但是,我意识到我需要在功能分支中实现的所有更改也需要在发布分支中实现。 在我看来,命令是

svn merge ^/feature_branch release_branch_local_pach

然后在trunk中重新整合feature分支

cd feature_branch_local_path
svn merge ^/trunk && svn ci -m "sync of feature with trunk"
cd trunk_local_path
svn merge ^/feature_branch --reintegrate && svn ci -m "feature reintegrated in trunk"

是否正确?我是否必须为第一个合并命令提供一些修订号?我使用 svn 1.8.13,而且我从来没有在没有 --reintegrate 的情况下合并过。

我不确定第一次合并是否总是能正常工作。如果你已经同步从主干合并到分支,那么它们也会被移动到发布分支,我建议它不会是你想要的。

可能更好的策略是仅合并选定的修订(樱桃采摘):

svn merge -c 100,105,107 ^/feature_branch release_branch_local_pach

(其中 100,105,107 - 应该合并的修订版)

另外,如果你想继续从发布分支合并到主干,你需要在主干中进行 block cherry pick 结果修改。假设您将 cherry pick 提交为修订版 120,则

svn merge -r 120 ^/release_branch trunk_local_pach --record-only
svn commit -m "Block revison 120 from remerge"

在这种情况下,当 yoy 尝试将发布分支合并到主干时,subversion 将不会第二次尝试合并修订版 100、105、107(第一次在重新集成合并期间合并)