web-dev-qa-db-fra.com

Que signifie "1 ligne ajoute des erreurs d'espacement" lors de l'application d'un correctif?

J'édite des fichiers de démarques d'un référentiel distant cloné et je souhaite tester la création et l'application de correctifs d'une branche à une autre. Cependant, chaque fois que je fais un changement, je reçois le message suivant pendant git apply:

0001-b.patch:16: trailing whitespace.
warning: 1 line adds whitespace errors.

(Cela se produit sur mon Mac et je ne sais pas où le code original a été créé.)

Que signifie le message d'avertissement et dois-je m'en soucier?

95
Yarin

Vous n'avez pas besoin de vous en soucier.

L'avertissement établit une norme de propreté des fichiers texte en ce qui concerne les espaces, le genre de choses qui préoccupent beaucoup de programmeurs. Comme le manuel explique:

Ce qui est considéré comme une erreur d’espace est contrôlé par la configuration de core.whitespace. Par défaut, les espaces finaux (y compris les lignes composées uniquement d'espaces) et les caractères d'espacement immédiatement suivis d'un caractère de tabulation à l'intérieur du retrait initial de la ligne sont considérés comme des erreurs d'espacement.

Par défaut, la commande génère des messages d'avertissement mais applique le correctif.

Ainsi, le terme "erreur" signifie que la modification introduit un espace de fin, une ligne d’espace seul ou un espace précédant un onglet. Autre que ce fait, il n'y a rien d'erreur dans le changement, et il s'appliquera proprement et correctement. En d'autres termes, si vous ne vous souciez pas des espaces "incorrects", n'hésitez pas à ignorer l'avertissement ou à le désactiver avec git config apply.whitespace nowarn.

111
user4815162342

Un cas où vous pouvez légitimement faire attention est quand vous voulez faire la différence entre les "anciennes" erreurs de caractères blancs (que vous voudrez peut-être conserver pour des raisons héritées) et les "nouvelles" erreurs d’espace (que vous souhaitez éviter).

À cet effet, Git 2.5+ (T2 2015) proposera une option plus spécifique pour la détection des espaces.

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

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

Traditionnellement, nous ne nous intéressions qu'aux ruptures d'espaces introduites dans les nouvelles lignes.
Certaines personnes souhaitent également peindre les ruptures d'espaces sur d'anciennes lignes. Quand ils voient une rupture d’espace sur une nouvelle ligne, ils peuvent repérer le même type de rupture d’espace sur l’ancienne ligne correspondante et dire: "Ah, ces ruptures sont là, mais elles ont été héritées de l’original, ne les touchons donc pas. maintenant. "

Introduire --ws-error-highlight=<kind> Option, qui leur permet de passer une liste de old, new et context, séparés par des virgules, pour spécifier les lignes sur lesquelles mettre en évidence les espaces blancs.

Le la documentation comprend maintenant :

--ws-error-highlight=<kind>

Mettez en surbrillance les erreurs d'espacement sur les lignes spécifiées par <kind> dans la couleur spécifiée par color.diff.whitespace.
<kind> est une liste de old, new, context, séparés par des virgules.
Lorsque cette option n'est pas spécifié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 (à la fin de still bbb et ccc):

old and new shitespace errors

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

4
VonC
1
Vebz