1

我的问题是双重的。我正在使用与 Visual Studio 2015 集成的 Beyond Compare 作为我的比较/合并工具。在查看我的“待定更改”列表时,我看到一个文件,如果我“右键单击 -> 源代码管理 -> 与最新版本比较”,我可以看到文本比较中没有差异,如下所示:

文本比较 - 注意(稍后)我突出显示的位

但是,如果我进行相同的十六进制比较,我会得到以下结果:

十六进制比较 - 开始时的 BOM

我可以看到它在开始时以某种方式获得了 EF BB BF,而 Beyond Compare 用左侧窗口中的红色条记录了这种差异。

在其他情况下,我在“Pending Changes”中看到文件末尾带有 0d0a,这显然是换行符,但 Beyond Compare 并没有将其显示为文本比较中的差异(我已经看到 Git GUI 显示它作为过去的差异)。

当我将特定文件视为“待定更改”时,如何让 Beyond Compare 忽略文本比较中未显示的此类更改,因此我在第一个“待定更改”窗口中看不到它地方?

或者,如果这根本不可能,

如何让 Beyond Compare 在默认文本比较中显示这些更改,以便轻松撤消它们?

4

1 回答 1

2

要使额外的换行符在文本比较中显示为差异:

  1. 单击规则工具栏按钮(裁判图标)。
  2. Importance选项卡中,选中Compare line endings (PC/Mac/Unix)
  3. 要使其成为新文本比较会话的默认值,请在单击确定之前将下拉列表从仅用于此视图更改为同时更新会话默认值。

如果打开View > Visible Whitespace,额外的换行符将显示为红色差异。当此设置打开时,它还将在一侧显示 Windows 样式换行符和在另一侧显示 Unix 样式换行符作为区别。

正如 AdrianHHH 所说,EF BB BF 是一个 UTF-8 字节顺序标记。无法在文本比较中添加或删除 BOM。在十六进制比较中,可以从文件中删除 BOM。

于 2016-04-28T16:21:37.997 回答