想象一下这种情况下:

  1. 爱丽丝和鲍勃两种克隆的一个中央主善变的储存库,含有1文本的文件
  2. 两个爱丽丝和鲍勃做的一个改变的相同线路的文件,并提交
  3. 鲍勃推回到中央储存库,但不是爱丽丝
  4. 爱丽丝现在拿到她的存储库,通知她现在有两个头,并合并
  5. 由于合并是一个冲突中,她解决冲突
  6. 爱丽丝,然后提交,但是不会推动
  7. 鲍勃现在做进一步修改文件,在其他一些位置的文件(ie。远远没有最初的变化)和提交,并推动
  8. 爱丽丝,在她的合并文件,一个类似的更改,在相同的位置Bob只是改变,并承诺
  9. 爱丽丝拉,并且发现的又一个双向的储存库,她的合并

这里有一个不同鉴于上述情况

(数字后的"变化"意味着该人改变"部分X"的文件。如果这两个用户改变的相同部分,我们有一个合并的冲突之前,如果他们改变了不同,没有那么多)

    Alice                    Bob
    CLONE MASTER             CLONE MASTER
    -----------------------------------------
    CHANGE 1                               <-----+
    COMMIT                                       +-- upcoming merge conflict
    -----------------------------------------    |
                             CHANGE 1      <-----+
                             COMMIT
                             PUSH
    -----------------------------------------
    PULL                                   <-- Bob's change +1 head
    MERGE                                  <-- Attempt to get rid of extra head
    RESOLVE CONFLICT                       <-- Resolve merge conflict
    COMMIT
    -----------------------------------------
                             CHANGE 2      <-----+
                             COMMIT              +-- yet another merge
                             PUSH                |   conflict ahead
    -----------------------------------------    |
    CHANGE 2                               <-----+
    COMMIT
    PULL                                   <-- Bob's change, again +1 head
    MERGE                                  <-- Attempt to get rid of extra head
    RESOLVE ???

在这一点上,我的问题是这个:

  • 将合并工具采取她的第一个合并的决议虑到?因为鲍勃从不拉在爱丽丝的变化,他的复制仍然是无效的任何改变的爱丽丝已经做出,她最初的改变(其是在冲突鲍勃的),她的合并和她的最新变化,这是冲突中的鲍勃是最新的变化。

如果我只是简单地采取鲍勃的版本的文件,爱丽丝的版本的文件,并给予任何合并的程序,这将标志的这两个改变为在冲突。

换句话说,将冲突的工具,尽量问Alice,以解决这两种原始冲突以及新的一个,或只有最新的一个吗?

我猜(我没有尝试这样做,仍然试图建立某种形式的测试脚本来测试这个问题)是善变的,只会问Alice,以解决新的冲突。

如果有什么我配置水银到使用第3方diff/合并的程序?这将仍然适用吗?例如,我已经配置了我的安装使用 超出比较, 将这两个文件(鲍勃的只有他的改变和爱丽丝和她变化+合并决议)被给与或者如果没有最初的决议?换句话说,如果使用 超出比较, 将正确的事情发生在这里了(假设它不会在所有的.)

有帮助吗?

解决方案

善变的,将仅需要最新的冲突得到解决,并将工作的现有外部变化的工具。

当爱丽丝做她的第二个合并的,她是合并她自己的以前的合并与鲍勃的新的三角洲,仅这一变化需要的综合重新。

真的很清晰的图,顺便说一句.感谢

其他提示

这只是去问Alice,以改变的最新的冲突。

为此原因如下:

她已经有了改变,1从鲍勃这是在她的历史,所以它不会试图改变那些代码。它的工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top