2010-08-31 92 views
38

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

回答

76
  1. 首先确保你是最新的。更新你的目标分支的工作副本,即。你融入的地方。在这个例子中,我们正在研究“核心”的主干,我们想要抓住维护分支发生的变化并合并它们。
  2. 解决所有冲突。在此阶段,工作副本和存储库之间不应存在冲突。
  3. 在工作副本上选择SVN合并选项。在Eclipse中,这将在“团队”菜单下找到并称为“合并分支”。 SVN:在Eclipse中合并
  4. 将From URL改为您想要合并到您的工作副本的特定分支。在这个例子中,我们正在寻找p400维护分支(./core/branches/p400)。
  5. 将“修订版本”更改为合并到目标分支中的最后一个修订版本。基本上你不想合并整个分支历史,你只是想包含自上次合并以来的更改。目前在Subversion中没有简单的方法来确定最后的合并点。您必须查看消息日志并查找最后一次提交合并的提交。如果您遵守用于合并的提交消息,应该很容易(见下文)。记下该修订版的内容 - 稍后在提交更改时需要这些修订。 SVN:与Eclipse合并
  6. 将修订版本更改为最新版本(即头部)。记下该修订版的内容 - 稍后在提交更改时需要这些修订。
  7. 单击合并并等待。取决于差异有多大,这可能很快,或者我只是堕落了。如果你有这么大的变化,你不能在Eclipse中完成它,你可能需要使你正在合并的修订版本的范围更小。或者你甚至可能不得不跳过某些修订版,并且如果它们很庞大,就要手动进行修改。更新大型第三方库时,我们不时遇到此问题。绝大多数时间你都会好起来的。
  8. 查看更改并解决冲突。合并完成后,查看对您的工作副本所做的更改,并确保解决您找到的任何冲突。
  9. 一旦目标工作副本中的所有更改都已解决,请使用一次提交检查它们。您没有进行大量提交的原因是这些更改应该在您合并的分支中记录。提交消息需要采用特定格式来详细说明合并,并且在将来很容易找到。我们使用以下格式,但您可以使用任何适用于您的内容 - 只要您坚持。

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

享受!

+3

相较于颠覆性(Eclispe的标准SVN客户端我觉得呢?)Subclipse中具有良好的最佳实践检查合并之前) 只是你知道.. – 2010-10-06 10:22:42

0

我想补充点8 .Review的变化和解决冲突。 ---

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

此外,这是helpful-- What is the proper way to do a Subversion merge in Eclipse?