我有一个主干,我从中创建了一个发布分支(我已经完成了它的工作,已经提交了)。在此之后,我从主干创建了一个功能分支,现在我已准备好使用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的情况下我从未合并过。
答案 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(第一次在重新集成合并期间合并)