如何在已经从trunk中更改的功能分支中进行合并更改

时间:2011-09-29 03:45:36

标签: svn branching-and-merging

我看到之前提出过非常相似的问题,但似乎无法找到一个确切的答案。对不起,如果这是重复的。

我正在开发一个功能分支,提交了10个版本,并且我不时地将主干上的修订合并到我的功能分支中。现在该功能已准备就绪并且正在工作,我想将我的更改合并回主干。在情节中,这是

trunk --------------------^
      \     \     \      ?
 feat  v-----v-----v----?

我的第一个想法是做一个直接的整个分支合并,我将合并的变化合并到分支被分叉的所有方式,直到HEAD。但是我看到的麻烦是,从trunk合并的中间修订(包括几个文件添加和删除)在再次合并回trunk时会引起冲突。

我想知道尽管存在冲突,整个分支合并是否是正确的方法?或者,从躯干到中心的合并是一个坏主意;虽然有点必要吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

在我之前工作的地方解决这个问题的方法是,在合并回主干之前,你会做一个最终的变基。这意味着,检查到主干的唯一更改将是在您的分支上发生的更改,并且因为您刚刚重新定位它应该顺利进行。

  • 将最新的更改从主干拉到您的分支。
  • 修复冲突,使应用程序编译等。
  • 将您的分支合并到主干。

答案 1 :(得分:0)

整个技术在Subversion "Reintegrate a branch"中命名。您应该注意到重新集成后,您应该丢弃您的分支(本地副本和Subversion存储库中的分支),以确保它不再被使用。 SVN红皮书文档在一个示例中解释了要采取的步骤(与描述的@Daemin相同)。