这是合适的行为吗?

时间:2011-10-31 16:35:54

标签: mercurial

我有这样的分支树:branches tree

现在我希望从默认分支(52 rev)合并到max.grigoriev.test分支(49 rev)

这是49转的变化(我在那里添加了test.css):

49 rev

上次合并后的结果51 rev(已添加test.css)

enter image description here

但在接下来的52转中,我决定删除test.css

enter image description here

在合并52到49之后我的期望是在我的分支中有一个新的php文件(adtweaker_view.php),并且应该删除test.css。但mercurial只是添加了一个新的php文件,并没有删除test.css

merged tree

merged result

我不明白为什么?

1 个答案:

答案 0 :(得分:0)

<强> test.css:

  1. 文件添加到黄色分支(rev 49)。
  2. 在蓝色分支中,首先添加文件(rev 51)然后删除(rev 52)。结果就好像在蓝色分支中没有发生任何事情。
  3. 将蓝色分支合并为黄色分支导致没有变化,因为蓝色分支中没有任何结果。因此,此文件的合并结果是正确的。

    <强> adtweaker_view.php:

    1. 文件adtweaker_view.php未添加到上述任何修订版中,因此它不能像您说的那样是新的,可以吗?
    2. 文件在蓝色分支中修改(rev 51)。
    3. 将蓝色分支合并为黄色分支将修改文件,如(2)所示。因此,此文件的合并结果是正确的。

      <强> adreplicator_view.php

      1. 该文件仅在蓝色分支(rev 51)
      2. 中修改

        将蓝色分支合并到黄色分支应该导致文件的修改。因此,您的合并结果不正确!似乎你的mercurial应用程序忘记了adreplicator_view.php修改(rev 51)。