45 votes

Recommandation définitive pour git autocrlf paramètres

J'utilise Windows, Mac OS X et linux sur une base quotidienne. J'utilise git dans tous ces milieux, en tirant de repos qui sont utilisés par les gens avec des choix différents pour les fins de ligne.

Sont là recommandation définitive pour la configuration de base.autocrlf dans ma situation?

35voto

VonC Points 414372

Je le recommande, comme je l'ai fait en cela DONC, la question, de le mettre à false.

Si vous pouvez éviter d'avoir à modifier tout eol (avec votre éditeur de texte), alors il serait préférable de repousser votre travail avec les personnes en fin de vie inchangée (c'est à dire "comme vous les avez trouvés").

15voto

John Broglio Points 81

Une question qui n'est pas souvent mentionné dans ces discussions: si vous développez des scripts shell sous windows (par exemple, dans cygwin) et valider avec CRLF (autocrlf=false), ils se crash sur *nix boîtes inutiles, des messages d'erreur. (Il peut y avoir des cas similaires avec d'autres langages de script.) Après grattage de la tête pendant une demi-heure, vous vous en souvenez et ensuite dos2unix les petits coquins. Si vous travaillez dans un environnement mixte (dire le déploiement de Windows vers un serveur linux) et vous voulez absolument définir autocrlf à false, alors ASSUREZ-vous que toutes vos fenêtres éditeurs utilisent unix (lf) les fins de ligne. Sinon autocrlf à l'entrée (et prier). La plupart du 21e Siècle, les programmes Windows sont à l'aise sans le début des années 1980 l'imprimante en ligne de CRs, c'est donc une bonne idée de configurer votre ligne terminaisons LF (unix) de toute façon.

13voto

Philip Oakley Points 3825

GIT n'aurait PAS commun SHA1 est pour deux fichiers texte à l'identique le texte, mais différents de fin de ligne(EOL) des mécanismes à l'intérieur de la représentation binaire. Le contenu est stocké sous forme d'un blob, qui est réutilisé si une autre , identique copie est dé-posé dans le référentiel (économie d'espace!)

Le choix par défaut prises par le (la) GIT (designers) est d'utiliser les *nix style de caractère de fin de ligne (LF seulement) chaque fois que possible, de sorte que, pour le même texte, le contenu , vous obtenez le même SHA1. (probablement un facteur important ;-)

Parce que le contenu/blob ne se souvient plus de l'origine de l'utilisateur EOL choix (n'oubliez pas c'est peut-être maintenant dans un lointain référentiel) , Git a à faire quelques suppositions (option de base) sur la façon de recréer l'original de l'utilisateur du fichier (c'était CRLF ou était-ce simplement LF) dans une manière que vous (et vos outils) peuvent utiliser.

La normale recommandation est que, localement, chaque utilisateur (a) convertit les *nix LF terminaisons au moment de la validation dans un blob (donc tous les verrez commune SHA1 blob noms) (a/k/a de la bonne Chose), et (b) locaux de la re-création de l'option à leur système de réglage par exemple, *nix(LF) ou Windows(CRLF), etc.

Définir certaines normes locales pour vos utilisateurs, et ont un gros 'EOL/LF/CRLF & Espaces de Correction commit", et vous serez bien (en plus de la formation de la re-formation des nouveaux utilisateurs)

Vous pouvez aussi, assurez-vous (chaque utilisateur) utilise une commune des blancs-ajustement de l'espace de sorte que les onglets v les espaces et les espaces ne cause pas plus d' diff inconvénients!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X