Un cas où vous pouvez légitimement vous en soucier est celui où vous voulez faire la différence entre les «anciennes» erreurs de blancs (que vous voudrez peut-être conserver pour des raisons héritées) et les «nouvelles» erreurs d'espaces (que vous voulez éviter).
À cet effet, Git 2.5+ (Q2 2015) proposera une option plus spécifique pour la détection des espaces.
Voir commits 0e383e1 , 0ad782f 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 intéressions uniquement aux ruptures d'espaces blancs introduites dans les nouvelles lignes.
Certaines personnes veulent également peindre des cassures d'espaces blancs sur de vieilles lignes. Lorsqu'ils voient une rupture d'espace blanc sur une nouvelle ligne, ils peuvent repérer le même type de rupture d'espace blanc 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."
Introduire l' --ws-error-highlight=<kind>
option, qui leur permet de transmettre une liste séparée par des virgules de old
, new
et context
de spécifier les lignes pour mettre en évidence des erreurs sur les espaces.
La documentation comprend désormais :
--ws-error-highlight=<kind>
Mettez en surbrillance les erreurs d'espaces 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 d' une virgule old
, new
, context
.
Lorsque cette option n'est pas donnée, seules les erreurs d'espacement dans les new
lignes sont mises en surbrillance.
Par exemple, --ws-error-highlight=new,old
met en évidence les erreurs d'espaces 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 blanc ( bbb
), mais vous pouvez vous concentrer uniquement sur les nouvelles erreurs (à la fin de still bbb
et ccc
):
(test fait après t/t4015-diff-whitespace.sh
)
Avec Git 2.26 (Q1 2020), la diff-*
famille de sous-commandes de plomberie prête maintenant attention à la diff.wsErrorHighlight
configuration, qui a été ignorée auparavant; cela permet à " git add -p
" d'afficher également les problèmes d'espaces blancs à l'utilisateur final.
Voir commit da80635 (31 janvier 2020) par Jeff King ( peff
) .
(Fusionné par Junio C Hamano - gitster
- in commit df04a31 , 14 fév 2020)
diff
: déplacez diff.wsErrorHighlight vers la configuration "de base"
Signé par: Jeff King
Nous analysons diff.wsErrorHighlight in git_diff_ui_config()
, ce qui signifie qu'il ne prend pas effet pour les commandes de plomberie, uniquement pour les porcelaines comme git diff
elle.
C'est légèrement ennuyeux car cela signifie que des scripts comme add--interactive
, qui produisent un diff visible par l'utilisateur avec une couleur, ne respectent pas l'option .
Nous pourrions apprendre à ce script à analyser la configuration et à la transmettre --ws-error-highlight
à la plomberie diff. Mais il existe une solution plus simple.
Il devrait être raisonnablement sûr pour la plomberie de respecter cette option, car elle ne se déclenche que lorsque la couleur est activée par ailleurs. Et quiconque analyse la sortie colorisée doit déjà faire face au fait que cela color.diff.*
peut changer la sortie exacte qu'il voit; ces options font partie git_diff_basic_config()
depuis sa création dans 9a1805a872 (ajoutez un rappel de configuration diff "basique", 04/01/2008, Git v1.5.4-rc3).
Nous pouvons donc simplement le déplacer vers la configuration "de base", qui corrige add--interactive
, avec tout autre script dans le même bateau, avec un très faible risque de blesser les utilisateurs de plomberie.