detectar cambios de pestaña en un repository

Digamos que tiene un repository con cambios reemplazando tabs con espacios. He subido un repository ad-hoc

$ git clone https://github.com/albfan/whitespace-diff $ cd whitespace-diff $ cat -A file1 text$ ^Ianother text$ ^I^Itext$ $ git checkout HEAD^ $ cat -A file1 text$ ^Ianother text$ ^I text$ 

Si le preguntas a git por los cambios que obtienes

 $ git checkout master $ git diff HEAD^ diff --git c/file1 w/file1 index 69e1c73..82d1284 100644 --- c/file1 +++ w/file1 @@ -1,3 +1,3 @@ text another text - text + text 

que se reemplaza tabs con espacios

¿Cómo se puede get este tipo de dificultad?

 $ diff -u <(git show HEAD^:file1 | cat -A) <(git show HEAD:file1 | cat -A) --- /dev/fd/63 2016-01-31 23:21:52.341506890 +0100 +++ /dev/fd/62 2016-01-31 23:21:52.341506890 +0100 @@ -1,3 +1,3 @@ text$ ^Ianother text$ -^I text$ +^I^Itext$ 

y ver sustituciones de tabuladores reales? Aquí solo hay un file involucrado en diff, pero en los commits con varios files implicados, get esta salida puede ser una pesadilla

Simplemente canalice la salida a un filter que maneje esta sustitución por usted. Este es un one-liner de Perl.

 git <options> | perl -p -e 's/\t/^I/g' | less