threads / patch / 64464

patch.gitattributes: remove misspelled no-op whitespace attribute

Subject: [PATCH] .gitattributes: remove misspelled no-op whitespace attribute

## tl;dr

3 messages between Nov 11, 2025 and Nov 11, 2025. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Junio C Hamano· Nov 11, 2025, 18:41 UTC · lore

Ever since 14f9e128 (Define the project whitespace policy, 2008-02-10) added the whitespace rules to .gitattributes, we spelled the most general rule like so:

    * whitespace=!indent,trail,space

in the top-level .gitattributes file. The intent of this line was described in the commit log message:

     - Unless otherwise specified, indent with SP that could be
       replaced with HT are not "bad".  But SP before HT in the
       indent is "bad", and trailing whitespaces are "bad".

It clearly wanted to disable indent-with-non-tab, so !indent is most likely a misspelt form of '-indent'. Because indent-with-non-tab has never been enabled by default, by luck this was not causing any ill effect.

We could either remove "!indent", or spell it "-indent". The immediate effect would be the same. It would only start to make a difference when/if we enable indent-with-non-tab by default in future versions of Git.

Let's take the former option to remove "!indent" from the list. We would feel the effect first-hand ourselves before anybody else if we ever decide to change the built-in default whitespace rules, which would be hidden from us if we decide to rewrite it to "-indent" instead.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 * There is another one in git-gui/.gitattributes that probably was
   copied from here, which may want to get fixed.
 .gitattributes | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to .gitattributes +1 −1
diff --git a/.gitattributes b/.gitattributes
index 158c3d45c4..2a50ebaf2e 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,4 +1,4 @@
-* whitespace=!indent,trail,space
+* whitespace=trail,space
 *.[ch] whitespace=indent,trail,space diff=cpp
 *.sh whitespace=indent,trail,space text eol=lf
 *.perl text eol=lf diff=perl
-- 
2.52.0-rc1-455-g30608eb744
Jeff King· Nov 11, 2025, 21:39 UTC · re: Junio C Hamano · lore

Re: [PATCH] .gitattributes: remove misspelled no-op whitespace attribute

On Tue, Nov 11, 2025 at 10:41:20AM -0800, Junio C Hamano wrote:
Show 10 quoted lines
> We could either remove "!indent", or spell it "-indent".  The
> immediate effect would be the same.  It would only start to make a
> difference when/if we enable indent-with-non-tab by default in
> future versions of Git.
> 
> Let's take the former option to remove "!indent" from the list.  We
> would feel the effect first-hand ourselves before anybody else if we
> ever decide to change the built-in default whitespace rules, which
> would be hidden from us if we decide to rewrite it to "-indent"
> instead.
Perfectly explained, and the result makes sense.

I don't know that this patch particularly needed review, but maybe it is nice for you to know that somebody really is out there reading them. ;)

-Peff
Junio C Hamano· Nov 11, 2025, 22:02 UTC · re: Jeff King · lore

Re: [PATCH] .gitattributes: remove misspelled no-op whitespace attribute

Jeff King <peff@peff.net> writes:
Show 17 quoted lines
> On Tue, Nov 11, 2025 at 10:41:20AM -0800, Junio C Hamano wrote:
>
>> We could either remove "!indent", or spell it "-indent".  The
>> immediate effect would be the same.  It would only start to make a
>> difference when/if we enable indent-with-non-tab by default in
>> future versions of Git.
>> 
>> Let's take the former option to remove "!indent" from the list.  We
>> would feel the effect first-hand ourselves before anybody else if we
>> ever decide to change the built-in default whitespace rules, which
>> would be hidden from us if we decide to rewrite it to "-indent"
>> instead.
>
> Perfectly explained, and the result makes sense.
>
> I don't know that this patch particularly needed review, but maybe it is
> nice for you to know that somebody really is out there reading them. ;)

It is mostly a principle thing. I want to see that every non-merge changes authored by me is treated just like patches authored by others.

Another reason for me to send these patches out is so that I have a copy of the patch on the lore archive, with message-ID, so that "git log --notes=amlog" would work for my changes the same way as anybody else's.

← back to recent threads