忽略GitHub中所有的空格,包括换行符

4
我的项目是用C#编写的,它忽略空格,特别是换行符。
当进入Github的diff视图时,我知道可以使用?w=1 URL参数来忽略空格。
但它并不完全忽略空格。这一行:
somethingLong + somethingAlsoLong

就像这样被转换:

somethingLong +
somethingAlsoLong

当我的同事审查时,我仍然会在Github的diff中看到这些更改。

我知道在像Python这样的语言中,这样的空格更改是有意义的,但在C#中却没有意义。 Resharper 会自由地应用它们,包括分行。

最好在提交之前强制对所有文件运行Resharper,但这并不经常发生。当我进行更改时,我会在文件上运行Resharper,但它也会影响我没有更改的函数,因此,污染了我的提交。

这些文件可能本来就应该规范化间距,但我希望有一个选项可以忽略无意义的空格更改(包括换行符)来进行规范化。这样,在GitHub上的pull请求diff视图中,我的审阅者才能看到我真正的更改。

有办法实现这一点吗?

2个回答

1
如果在线评审不令人满意(这里是因为行末差异),那么您项目中的审核员将不得不本地检查拉取请求
一旦检出,就可以针对目标分支执行本地差异,这次差异工具能够忽略a+ba\n+\nb之间的差异。
这涉及到:
  • 差异选项(这在仅使用在线GitHub时不可用)
  • 或者像SemanticMerge这样的语义差异工具(尽管非免费)

1

GitHub的忽略空白过滤器在你的情况下不起作用,因为它只会忽略前导或尾随的空白。忽略所有地方的空白变化是错误的,因为它们在字符串中有所区别。你要找的是一个语义差异,它解析代码并能够确定空白或换行是否相关。

如果你仍在寻找解决方案,我正在开发一个拉取请求查看器,它允许你使用语义差异查看GitHub的PR。这里有一个非常类似于你描述的例子:而GitHub显示了由于添加了换行符而删除的1行和新增的4行,我的拉取请求查看器只显示了新增的参数(1行新行)。

目前,该查看器仅支持公开的拉取请求,但如果对您来说可以的话,您只需访问https://app.semanticdiff.com并输入您想查看的拉取请求的URL。


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