善变的,冲突、合并,进一步冲突以后,不会善变的还记得最初的决议?
-
26-09-2019 - |
题
想象一下这种情况下:
- 爱丽丝和鲍勃两种克隆的一个中央主善变的储存库,含有1文本的文件
- 两个爱丽丝和鲍勃做的一个改变的相同线路的文件,并提交
- 鲍勃推回到中央储存库,但不是爱丽丝
- 爱丽丝现在拿到她的存储库,通知她现在有两个头,并合并
- 由于合并是一个冲突中,她解决冲突
- 爱丽丝,然后提交,但是不会推动
- 鲍勃现在做进一步修改文件,在其他一些位置的文件(ie。远远没有最初的变化)和提交,并推动
- 爱丽丝,在她的合并文件,一个类似的更改,在相同的位置Bob只是改变,并承诺
- 爱丽丝拉,并且发现的又一个双向的储存库,她的合并
这里有一个不同鉴于上述情况
(数字后的"变化"意味着该人改变"部分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从鲍勃这是在她的历史,所以它不会试图改变那些代码。它的工作。
不隶属于 StackOverflow