使用Eclipse在SVN中合并分支到主干

时间:2010-08-31 17:42:59

标签: eclipse svn

我期待将我在SVN分支中开发的代码合并到主干。我正在使用Eclipse,我一直在使用Team-> Commit来提交我对SVN的更新。但我之前没有做过合并。请帮我解决一下这个。感谢

3 个答案:

答案 0 :(得分:80)

  1. 首先确保你是最新的。更新目标分支的工作副本,即。你要合并的地方。在这个例子中,我们正在处理“核心”的主干,我们希望获取维护分支中发生的变化并合并它们。
  2. 解决所有冲突。在此阶段,工作副本和存储库之间不应存在冲突。
  3. 在工作副本上选择SVN合并选项。在Eclipse中,这将在“Team”菜单下找到并称为“Merge Branch”。   SVN:在Eclipse中合并
  4. 将“发件人”URL更改为要合并到工作副本中的特定分支。在这个例子中,我们正在寻找p400维护分支(./core/branches/p400)。
  5. 将From Revision更改为合并到目标分支的最后一个修订。基本上,您不希望继续合并整个分支历史记录,您只想包括自上次合并以来的这些更改。目前在Subversion中没有简单的方法来确定最后一个合并点。您必须查看消息日志并查找有关合并的最后一次提交。如果您对用于合并的提交消息保持谨慎,这应该很容易(见下文)。记下修订版本 - 稍后在提交更改时需要这样做。   SVN:与Eclipse合并
  6. 将To Revision更改为最新版本(即head)。记下修订版本 - 稍后在提交更改时需要这样做。
  7. 单击“合并”并等待。根据差异的大小,这可能很快或Eclipse我只是摔倒了。如果你有如此巨大的变化,你无法在Eclipse中完成它,你可能需要使你合并的修订范围更小。或者您甚至可能必须跳过某些修订并且如果它们很大则手动执行。我们在更新大型第三方库时不时遇到这个问题。绝大多数时候你会没事的。
  8. 查看更改并解决冲突。合并完成后,请查看对工作副本所做的更改,并确保解决发现的任何冲突。
  9. 一旦在目标工作副本中解决了所有更改,请使用单个提交进行检查。您没有进行大量提交的原因是这些更改应该记录在您合并的分支中。提交消息需要采用特定格式,详细说明合并,并且将来很容易找到。我们使用以下格式,但您可以使用任何适合您的方式 - 只要您坚持使用它。

    将[source]合并到[target]; [储存库。合并rev [开始]:[结束]

  10. 享受!

答案 1 :(得分:0)

我想为Point 8添加。查看更改并解决冲突。 ---

手动处理冲突时 - 当您在代码块上从右向左复制时 - 请小心  有时会添加大量代码,有时它会正确地替换大块。  确保没有重复的代码块。

此外,这很有用 - What is the proper way to do a Subversion merge in Eclipse?

答案 2 :(得分:0)

在Eclipse中,我们可以选择合并。右键单击该项目,您将看到“团队”选项,单击该项目,您将看到合并选项。您可以在合并中看到三个不同的选项。 enter image description here

要成功地将分支中的更改合并到主干,我们需要将本地工作空间切换到主干(但是请确保在此之前所有更改都已提交给分支)。完成后,我们可以使用合并选项并选择“ 2 URLs”选项。我将trunk的URL设置为URL 1,将要合并的分支设置为URL2。我可以看到所有我选择的“确定”的传入更改。所有更改现在都在我的本地计算机中(此时,我的工作空间已链接到主干)。然后我将更改提交到主干,因此从分支到主干的合并成功。