什么是TortoiseMerge显示为“我的”和“他们的”?

时间:2018-03-26 10:39:18

标签: svn merge tortoisesvn

我有两个有冲突的文件,内容为1\n2\n3\n4\n5\n61-6)和1\n2\n3\n41-4),两者均基于内容为1\n2\n3\n4\n5的文件({ {1}})。但是,这就是TortoiseMerge在解决这一冲突时所表现出来的:

enter image description here

如您所见,左窗格和右窗格不仅显示1-51-6,而是显示1-41-3,4-5,4-6。两个文件中都有一个额外的1-3,4-5,4。我可以在第三个窗格中执行的操作(除了手动编辑内容之外),对于每个行或块,决定是保留“我的”还是使用“他们的”。但我发现解决冲突时,我应该只需要处理红色块,在他们的4-5或我的4-6之间做出决定。但不管怎样,还有额外的4。 (似乎这是来自公共基础的块,它对应于两个更改文件中的冲突块。是否有更正?为什么它在那里?我应该怎么处理那个橙色块?我可以使用他们的或我的,不差。

那么TortoiseMerge究竟在前两个窗格中显示了什么?

在第三个窗格中,如何在不必手动编辑结果的情况下决定1-4或1-6结果?

(这就是我创造这种冲突的方式:

  • 创建新的回购
  • 结账至WC1
  • 结账至WC2
  • 使用1 \ n2 \ n3 \ n4 \ n5创建WC1 \ Test.txt作为文件内容
  • 提交WC1 \ Test.txt
  • 更新WC2 \ Test.txt
  • 将第6行添加到WC1 \ Test.txt
  • 提交WC1 \ Test.txt
  • 从WC2 \ Test.txt
  • 中删除第5行
  • 更新WC2 \ Test.txt( - >冲突)
  • 编辑冲突)

更新:我刚刚注意到,在第三个窗格中,橙色线条标有“ - ”(减号),表示这些不会保存在合并文件中。事实上他们不是!我不明白为什么前两个面板用“=”(等号)显示这些行。

1 个答案:

答案 0 :(得分:0)

要回答我自己的问题,我认为这是怎么回事。

让r1成为常见版本,r2是我正在更新的更改版本,而WC是我最新版本与r2相关的更改。

第一个面板在r2(他们的)和r1之间显示 diff

第二个面板显示WC(我的)和r1之间的 diff

请注意,每个差异都可以更简洁地书写(在左侧添加一行,在右侧删除一行)。这两个差异以两个差异中删除的文本(橙色块)相同的方式同步,因此额外的详细输出和“=”符号。出于某种原因,橙色块没有以任何其他方式标记为删除。

第三个面板显示(r2和WC的合并)和R1之间的差异:这次,删除的橙色文本被正确标记为(将被删除)。

正如我所假设的那样,我可以通过简单地浏览所有红色块来决定是否使用我的或他们的冲突来解决冲突,而且我根本不需要触摸任何橙色块。

相关问题