红点标记BitBucket差异视图

11

我们最近将源代码从SVN和TFVC迁移到Git。我们的代码库主要由在VS2017编辑的C#和VB.NET文件组成。

我们的Git仓库托管在BitBucket上,但我们有一个差异的问题,如下图所示,BitBucket在我们的文件开头显示一个小红点:

enter image description here

当鼠标悬停时,会显示\ufeff,我知道这是表示零宽度不断行空格(ZWNBSP)的字符。

就个人而言,我把所有的源代码都托管在GitHub上,从未遇到过类似的问题。

那么,如果我们保留此内容,会产生什么风险?我们还有哪些其他选择?

非常感谢您的帮助, Roxtar

4个回答

9
我在从VS2017项目中获取的XML文件的bitbucket diffs中看到了红色点。
红色点代表Unicode代码点U+FEFF(\ufeff)字节顺序标记(BOM)。在我的情况下,当我在Visual Studio中编辑一个UTF-8的xml文件时,它会在文件开头添加BOM序列。
可以通过在没有签名的情况下在Visual Studio中重新保存文件来删除BOM(红点)。在VS(2017)中打开文件,然后选择“文件”->“另存为”。在“保存”按钮上,有一个下拉选项“使用编码保存”。
它默认为“Unicode(带有签名的UTF-8)”。请更改为“Unicode(不带签名的UTF-8)”。
git diff将看到\ufeff的删除。

3

我在整个周末都对此问题进行了调查,得出结论:我们不应该为此担心,如果您正在面对这个问题,您也不应该担心,如果您正在阅读这篇文章,那么您很可能已经面对了这个问题。

以下是我所有的测试用例和相关结果:

  • 在全新的BitBucket安装上使用相同的代码 =>
  • 在GitHub上使用相同的代码 => 没有
  • 在BitBucket中使用VSCode创建新的C#文件 => 没有
  • 在BitBucket中使用Visual Studio 2017创建新的C#文件 =>
  • 在GitHub中使用Visual Studio 2017创建新的C#文件 => 没有

我们非常担心这个问题,我们认为我们的源迁移引入了一个编码问题,并且我们将在旧文件和新创建的文件之间遇到编码地狱。

但是,对于新创建的C#文件的测试表明,VS2017在所有文件中都会引入这个ZWNBSP字符。因此,由于这是VS2017源文件的预期操作,所以在未来不应该成为问题。

因此,结论是,BitBucket显示这个ZWNBSP并带有一个红点,让人感到害怕,而GitHub则没有显示任何内容,我认为BB至少可以更改点的颜色。


2
如果您想要除去那个红点,因为它仍然表示那里有一个不必要的字符:https://dev59.com/mmw05IYBdhLWcg3wVwc4 - AJ X.

2

您的文件采用UTF-8-BOM编码。 请使用Notepad++打开文件,并将编码更改为UTF-8。 UTF-8编码


1
在IntelliJ IDEA中有一个选项可以使用——文件上下文菜单中的Remove BOM选项。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接