应用补丁时“1行添加空白错误”是什么意思?

时间:2012-09-12 21:47:11

标签: git whitespace patch git-patch

我正在编辑克隆的远程存储库的一些markdown文件,并且想要测试从一个分支到另一个分支的创建和应用补丁。但是,每次我做任何更改时,我都会在git apply期间收到以下消息:

0001-b.patch:16: trailing whitespace.
warning: 1 line adds whitespace errors.

(这发生在我的Mac上,我不知道原始代码的创建地点。)

警告信息的含义是什么,我需要关心吗?

5 个答案:

答案 0 :(得分:110)

你不需要关心。

警告制定了关于空白的文本文件的清洁标准,这是许多程序员倾向于关心的事情。正如the manual所解释的那样:

  

控制什么被认为是空白错误   通过core.whitespace配置。默认情况下,尾随空格   (包括仅由空格组成的行)和空格   紧跟在其中的制表符的字符   该行的初始缩进被视为空格错误。

     

默认情况下,该命令会输出警告消息,但会应用补丁。

因此,“错误”意味着更改引入了尾随空格,仅空白行或选项卡之前的空格。除了这个事实,这个变化没有任何错误,它将适用于干净和正确。换句话说,如果您不关心“不正确”的空格,请随意忽略该警告或使用git config apply.whitespace nowarn将其关闭。

答案 1 :(得分:4)

您可以合理关注的一种情况是,您希望区分“旧的”whitespase错误(您可能希望保留遗留原因)和“新”空白错误(您希望避免)。

为此,Git 2.5 +(2015年第二季度)将为空白空间检测提出更具体的选择。

commits 0e383e10ad782fd55ef3eJunio C Hamano (gitster) [2015年5月26日]。{ Juniocommit 709cd91中合并,2015年6月11日)

  

diff.c--ws-error-highlight=<kind>选项

     

传统上,我们只关心引入的空白破损   在新的行   有些人想在旧的时候画出空白破损   线也是。当他们看到新线上的空白破损时,他们   可以在相应的上发现同样的空白破损   旧线,并想说“啊,那些破损在那里,但他们   从原版继承而来,所以现在暂时不要碰它们。“

     

介绍--ws-error-highlight=<kind>选项,让他们通过   要指定的以逗号分隔的oldnewcontext列表   什么行突出显示空白错误。

documentation now includes

--ws-error-highlight=<kind>
  

<kind>指定的颜色突出显示由color.diff.whitespace指定的行上的空白错误。
  <kind>是逗号分隔的oldnewcontext列表。
  如果未指定此选项,则仅突出显示new行中的空格错误。

     

E.g。 --ws-error-highlight=new,old突出显示删除和添加的行上的空白错误   all可以用作old,new,context的简写。

例如,旧提交有一个空格错误(bbb),但您只能关注新错误(在still bbbccc的末尾):

old and new shitespace errors

(在t/t4015-diff-whitespace.sh之后完成测试)

答案 2 :(得分:1)

答案 3 :(得分:0)

它对我有用:

git config apply.whitespace fix

每次使用提交之前:

git add -up .

答案 4 :(得分:-1)

因为以TAB开头的行不等于SPACE。转到补丁文件,将TAB替换为SPACE。例如。 on vim on line + from patch file type x to remove space and not sign sign and insert space(CTRL)on eqiv to original size。