合并svn功能分支以释放分支

时间:2015-07-06 15:02:23

标签: svn version-control merge

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

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

svn merge ^/feature_branch release_branch_local_pach

然后重新集成主干中的功能分支

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的情况下我从未合并过。

1 个答案:

答案 0 :(得分:0)

我不确定第一次合并是否会始终正常工作。如果你已经将trunk从trunk合并到分支中,那么它们也将被移动到发布分支中,我建议它不是你想要的。

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

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

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

而且,如果你想继续从发布分支合并到主干,你需要在主干中阻止樱桃挑选结果修订。假设您将樱桃选择作为修订版120,然后

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

在这种情况下,当yoy尝试将release release合并到trunk时,subversion将不会尝试第二次合并修订100,105,107(第一次在重新集成合并期间合并)