web-dev-qa-db-fra.com

Comment afficher l'espace et les onglets avec git-diff

J'ai la sortie suivante avec git-diff.

- // sort list based on value    
+ // sort list based on value

Comment puis-je voir facilement le nombre d'onglets/espaces supprimés à la fin de la ligne?

36
Nico

Remarque: Git 2.5+ (Q2 2015) proposera une option plus spécifique pour la détection d'espaces blancs.

Voir valide 0e383e1 , ad782f , et d55ef3e [26 mai 2015] par Junio ​​C Hamano (gitster) .
(Fusionné par Junio dans commit 709cd91 , 11 juin 2015)

diff.c: --ws-error-highlight=<kind> option

Traditionnellement, nous nous soucions uniquement des ruptures d'espaces introduites dans les nouvelles lignes.
Certaines personnes veulent également peindre les cassures d'espaces blancs sur les anciennes lignes. Quand ils voient une cassure d'espaces blancs sur une nouvelle ligne, ils peuvent repérer le même type de cassure d'espaces blancs sur l'ancienne ligne correspondante et veulent dire "Ah, ces cassures sont là mais elles ont été héritées de l'original, alors ne les touchons pas pour maintenant. "

Présentez --ws-error-highlight=<kind>, qui leur permet de passer une liste séparée par des virgules de old, new et context pour spécifier sur quelles lignes mettre en évidence les erreurs d'espaces.

la documentation inclut maintenant :

--ws-error-highlight=<kind>

Mettez en surbrillance les espaces blancs sur les lignes spécifiées par <kind> dans la couleur spécifiée par color.diff.whitespace.
<kind> est une liste séparée par des virgules de old, new, context.
Lorsque cette option n'est pas indiquée, seules les erreurs d'espacement dans les lignes new sont mises en évidence.

Par exemple. --ws-error-highlight=new,old met en évidence les erreurs d'espacement sur les lignes supprimées et ajoutées.
all peut être utilisé comme raccourci pour old,new,context.

Par exemple, l'ancien commit avait une erreur d'espace (bbb), mais vous pouvez vous concentrer uniquement sur les nouvelles erreurs:

old and new shitespace errors

(test effectué après t/t4015-diff-whitespace.sh )


Mise à jour de Git 2.11+ (T4 2016, un an et demi plus tard):

git config diff.wsErrorHighlight [old,new,context]

git diff/log --ws-error-highlight=<kind> manquait la variable de configuration correspondante pour la définir par défaut. Cela est ajouté dans Git 2.11.

Voir commit 0b4b42e , commit 077965f , commit f3f5c7f (04 octobre 2016) par Junio ​​C Hamano (gitster ) .
(Fusionné par Junio ​​C Hamano - gitster - in commit e5272d , 26 octobre 2016)

31
VonC

Je peux penser à plusieurs options:

  • Configurez Git pour utiliser les couleurs: git config --global color.ui true. L'espace à la fin des lignes est maintenant surligné en rouge.

  • Dirigez la sortie de git diff à cat: git diff | cat -A. Le -A l'indicateur indique à cat d'afficher les caractères non imprimables (par exemple ^I pour l'onglet).

11
knittl