2011-04-08 93 views
6

定的存储库A和库B(创建关变更A2的克隆):Mercurial - 差异合并存储库A-> B vs B-> A?

A1 - A2 - A3 - A4 - A5 
     \ 
      B3 - B4 

假设我们希望这两个库合并到一起。如果我们将回购B合并到回购A与将回购A合并到回购B中有什么区别吗?

我能想到的唯一差异是合并工具本地/基地arguments将取决于您选择的选项。是否还有其他差异要注意?

+2

术语注:您合并*头*,而不是*库*(可能有多个头)。 – 2011-04-08 12:25:59

+0

了解 - thx。 – 2011-04-08 13:21:10

+0

我更新了问题以使用普通的Mercurial术语。 – 2011-04-08 13:44:36

回答

8

合并一般是对称的,也有一些例外:

  • 如果合并后的头从不同命名为分支,顺序很重要。合并 修订版将位于第一个父母的分支上。
  • Mercurial 1.8.4开始,这同样适用于书签,即只有第一个父母的书签
    将向前移动到合并修订版。
  • 合并版本的父母在日志和差异视图中的顺序是不同的,但该 没有任何值得注意的实际影响(从我的经验)。
+0

也许你知道。我一直在假设我应该在分支中进行最少的变更合并(即更新为h1,并在h2中合并,其中h2自公共点起的变更少于h1),那么真的需要做“最好的事情”?也许为合并算法或更少的工作更少?我不记得为什么我会做出这样的假设,而是根据你的回答来判断,而我对它的考虑越多,这听起来就像我的假设是错误的。这与多个命名分支无关,只是两个头在同一个命名分支中,就像默认分支中那样。 – 2011-04-10 21:31:52

+0

有趣的一点。如果我考虑这个问题,我也倾向于将这个分支合并为更少的变更。但是,从技术上讲,我也想不出有什么好的理由。也许这个假设是一个基于如果必须完全手动完成合并的错误观念。 – 2011-04-13 17:23:17

+0

我想我会在Mercurial邮件列表上询问,如果我以某种方式得到明确的答案,我会回复一条评论。 – 2011-04-13 17:27:07

4

合并父母的顺序会有所不同,但这只会影响您在查看合并变更集时首先看到的差异。否则,如果更新到B4并合并到A5或反之,则没有任何区别。

相关问题