I’m trying to ensure that I don’t commit code that uses tab characters for indentation. This is a soft constraint that I’m applying to my own commits (right now we don’t have a standard for indentation characters, but I’d like to use spaces, since there’s no disagreement on the width of a space, but some people use width-4 tabs versus width-8 tabs).
The easiest way to check such constraints is often to look at the actual output of git diff every time you are about to commit and see if there are any problems. For example, for me, by default, trailing whitespace is highlighted and windows newlines are also visible in the diff, so if I’m about to accidentally commit code with trailing whitespace, I will be alerted to this. Is there a way to make tab characters also show up in git diff?
Git learned the
tab-in-indentwhitespace category in 1.7.2 (2010 July 21).From Documentation/RelNotes/1.7.2.txt:
It is controlled and used in the same ways as the other whitespace checking options.
The highlighting in
git diffis the same as the other whitespace errors.Checking is available with
git diff --check.Et cetera.
Add
tab-in-indentto the value of thecore.whitespaceconfiguration variable to enable it (probably either in one or more specific repositories or in your “global” (per-use) configuration).Or, you can set it for individual commands (
git -cis also from 1.7.2):You could use something like this in a
pre-commithook to check for tabs without having it in any of your actual repository configuration files.