git whitespace woes

Git1.6.0.4 seems a bit old, especially if you consider that:

  • in 1.6.3.4, “git apply --whitespace=fix” did not fix trailing whitespace on an
    incomplete line
  • in 1.6.3.2, “whitespace” attribute that is set was meant to detect all errors known
    to git, but it told git to ignore trailing carriage-returns.

Could you try with Git1.6.4.1, and rather than setting a global config, set an attribute on the files you want a special whitespace handle, like this patch describes.

In a given directory, create a .gitattributes file.

* -whitespace

which will ignore any ‘whitespace’ errors.

Now that will not prevent any conflict due to lack of consistency but that may be worth trying.


The patch was a test about:

Only ignore whitespace errors in t/tNNNN-*.sh and the t/tNNNN subdirectories.
Other files (like test libraries) should still be checked.

t/.gitattributes
t[0-9][0-9][0-9][0-9]-*.sh  -whitespace
t[0-9][0-9][0-9][0-9]/*     -whitespace

Note (Git 2.3.2+, Q1 2015, commit 0a80bc9, by Junio C Hamano aka gitster) “git apply --whitespace=fix” is no longer silent:

git apply --whitespace=fix” fixed whitespace errors in the common
context lines but did so without reporting.

When the incoming patch has whitespace errors in a common context line (i.e. a line that is expected to be found and is not modified by the patch), “apply --whitespace=fix” corrects the whitespace errors the line has, in addition to the whitespace error on a line that is updated by the patch.
However, we did not count and report that we fixed whitespace errors on such lines.

Leave a Comment