web-dev-qa-db-fra.com

Git 1.6.4 beta sur Windows (msysgit) - Terminaison de ligne Unix ou DOS

J'installe msysgit 1.6.4 beta sur mon VPC de développement Win Vista. Un écran d'installation demande si je veux utiliser la terminaison de ligne Unix ou la terminaison de ligne DOS. Normalement, je choisirais DOS, mais le texte de configuration indique que l'arrêt du DOS peut signifier que les fichiers ne fonctionnent pas avec tous les outils de ligne de commande de Git. La terminaison de ligne Unix indique "... la plupart des applications [Windows] peuvent gérer cela ...".

Est-ce que quelqu'un sait quelle option je devrais choisir pour utiliser Git via le Shell pour mon travail VS 2008?

43
Scott Davies

Ces paramètres pendant le processus d'installation de msysgit sont en fait ici pour corriger la valeur de core.autocrlfconfig .

core.autocrlf

Si vrai, rend git converti CRLF à la fin des lignes dans les fichiers texte en LF lors de la lecture à partir du système de fichiers, et convertit en sens inverse lors de l'écriture dans le système de fichiers.

La variable peut être définie sur 'input', auquel cas la conversion se produit uniquement lors de la lecture depuis le système de fichiers, mais les fichiers sont écrits avec LF à la fin des lignes.

Actuellement, les chemins à considérer comme "texte" (c'est-à-dire soumis au mécanisme autocrlf) sont décidés uniquement sur la base du contenu.

J'insisterais sur ne pas essayer de convertir quoi que ce soit automatiquement, les effets secondaires sont tout simplement trop importants (en termes de conflit de fusion potentiel, en particulier sur le développement distribué avec environnements différents)

Si vos outils peuvent gérer la terminaison de ligne de style Unix, vous devez les configurer pour produire des lignes Unix, qui peuvent ensuite être lues par Windows (VS2008, Notepad ++, ...) et Unix, et peuvent être traitées par n'importe quel 'sh' Git -scripts.

Mais avec core.autocrlf mis à false, la décision de transformer une terminaison de ligne de texte sera une décision explicite volontaire, pas une décision d'effet secondaire invisible en arrière-plan.


Pour en savoir plus, consultez " Fonctionnement des conversions de fin de ligne avec git core.autocrlf entre différents systèmes d'exploitation "

 | Conversion résultante lorsque | Conversion résultante lorsque 
 | commettre des fichiers avec divers | sortie FROM repo - 
 | EOLs INTO repo et | contenant des fichiers mixtes et 
 | Valeur core.autocrlf: | valeur core.autocrlf: 
 ---------------------------------------- ---------------------------------------- 
 Fichier | vrai | entrée | faux | vrai | entrée | faux
-------------------------------------------- ------------------------------------ 
 Windows-CRLF | CRLF -> LF | CRLF -> LF | tel quel | tel-quel | tel quel | tel quel 
 Unix - LF | tel quel | tel quel | tel quel | LF -> CRLF | tel quel | tel quel 
 Mac -CR | tel quel | tel quel est | tel-quel | tel-quel | tel-quel | tel-quel 
 mixte-CRLF + LF | tel-quel | tel-quel | tel-quel | tel-quel | tel-quel | tel quel est 
 Mixte-CRLF + LF + CR | tel quel | tel quel | tel quel | tel quel | tel quel | tel quel 
 
123
VonC

Visual Studio 2008 gère nix les terminaisons de ligne sans problème. Cependant, il essaiera de détecter les fichiers texte avec des terminaisons de ligne incohérentes pour tenter de les corriger. Notepad d'un autre côté n'est pas capable d'afficher correctement nix les fichiers texte.

3
Martin Liversage