0

通常,当我在更新工作副本时遇到 SVN 中的合并冲突时,冲突的行或块会在 TortoiseMerge 中突出显示。然后我可以选择使用“他们的”或“我的”,或以某种方式同时使用两者。无论如何,我一眼就能直观地看出问题所在。

但是,通常情况并非如此。TortoiseMerge 只会将整个文件标记为冲突。从图标来看,它似乎告诉我“他们”删除了文件的全部内容并添加了新内容:

TortoiseMerge 截图

当我查看自获得工作副本1以来发生的少数提交的个别差异时,只有几行发生了变化。同样,我只更改了工作副本中非常有限的行数。因此,它似乎不可能是EOL 问题(或者,至少有一个提交应该突出显示整个文件已更改,不是吗?)。

此外,这不是1.4 和 1.5 之间的版本不兼容;我似乎使用的是客户端版本 1.9.6 和服务器版本 1.8.16。当然,我不知道的那对版本之间可能还有另一个不兼容的地方。

更新:此外,当我在的版本中选择“使用整个文件”然后保存结果时,TortoiseMerge 声称“文件为空”并提出将其删除。

TortoiseMerge 试图用该视图告诉我什么,以及当发生这种情况时,我如何方便地解决具有 1000 行或更多行的文件中的冲突?当我尝试使用工作副本中的版本(并且确实清除其内容!)时,为什么它会声称该文件为空?


1:事实上,就我目前面临的情况而言,只有一次提交。它修改了第 3 行以及第 74 行和第 120 行之间的一些行。同时,在我的工作副本中,我在第 150 行之后插入了新行。

4

1 回答 1

1
  • 他们的具有 CRLF EOL 的 UTF8 BOM 编码。
  • 的具有 AEOL EOL 的 ASCII 编码。

我预计编码和 EOL 存在问题。svn:eol-style=native顺便说一句,在文件上添加属性是有意义的。

您也可以尝试在 TortoiseMerge 设置中启用忽略行尾选项并查看结果。但是,我建议禁用此选项。

于 2017-09-28T10:44:45.153 回答