web-dev-qa-db-fra.com

git, erreurs d'espaces blancs, silencieux et autocrlf, les réponses définitives

Pouvez-vous expliquer les erreurs d'espaces dans git, que signifient-elles, qu'est-ce que le `` silencieux '', et dois-je m'en inquiéter?

(Exécution de msysgit, mais avec d'autres utilisateurs sous linux).

Il existe déjà une réponse "définitive" pour autocrlf ici (définissez-la sur false git config --global core.autocrlf false)

45
Benjol

Squelching est initialement une fonction utilisée dans les télécommunications pour définir un seuil au-dessus duquel un signal est autorisé ou non.

Dans votre cas, quand vous voyez:

warning: squelched 104 whitespace errors
warning: 109 lines add whitespace errors. 

Cela signifie: au lieu d'afficher plus de 100 messages d'erreur, il vous avertit qu'il aurait dû afficher ces erreurs (mais il ne le fera pas, afin de ne pas encombrer la sortie)

Je n'ai pas de recommandations définitives pour la politique des espaces blancs, sauf pour identifier pourquoi elles sont introduites en premier lieu.
Si votre éditeur ne convertit pas les caractères eol (fin de ligne) entre Window et Unix, cela signifie qu'il ajoute ou supprime automatiquement des espaces blancs, ce qui n'est pas toujours utile.

Un premier test (comme dans ce article de blog ) consiste à désactiver la politique:

git config core.whitespace nowarn

ou essayez

git config core.whitespace fix

et voyez si cela facilite vos opérations de rebase.

29
VonC

Voici comment corriger les erreurs "espaces vides" lors de l'utilisation de git apply:

La première chose que vous devez savoir est: qu'est-ce qu'une erreur d'espace. Ceci est expliqué dans la documentation des paramètres core.whitespace . Fondamentalement, git gère plusieurs types d'erreurs d'espaces:

blank-at-eol
blank-at-eof
space-before-tab
indent-with-non-tab
tab-in-indent
cr-at-eol

espace de fin l'erreur peut augmenter lors de l'application d'un correctif à un fichier à l'aide de la fin de la ligne de style Windows (CRLF). Pour éviter cet avertissement, vous pouvez demander à git apply pour ne pas afficher d'avertissement:

git apply --whitespace=nowarn fix.patch

ou vous pouvez modifier la configuration git à la volée (avec -c) pour dire "ok git, CR en fin de ligne va bien cette fois":

git -c core.whitespace=cr-at-eol apply fix.patch

Si vous voulez le rendre permanent , éditez simplement la configuration git comme ça:

git config apply.whitespace nowarn

ou :

git config core.whitespace cr-at-eol
17
Vince

Après avoir également cherché cette réponse et examiné les manuels git-config et git-apply, j'ai constaté que

git config apply.whitespace nowarn

désactive l'affichage des erreurs d'espaces dans votre référentiel actuel.

Pour le rendre disponible pour tous les référentiels, ajoutez simplement --global comme ça:

git config --global apply.whitespace nowarn
14
Lulisaurus