2009-08-08 7 views
36

Estoy instalando msysgit 1.6.4 beta en mi VPC de desarrollo Win Vista. Una pantalla de instalación está solicitando si deseo utilizar la terminación de línea Unix o la terminación de línea de DOS. Normalmente, elegiría DOS, pero el texto de configuración indica que la terminación de DOS puede significar que los archivos no funcionan con todas las herramientas de línea de comando de Git. La terminación de línea Unix establece "... la mayoría de las aplicaciones [Windows] pueden manejar esto ...".Git 1.6.4 beta en Windows (msysgit) - terminación de línea Unix o DOS

¿Alguien sabe qué opción debería elegir para usar Git a través del shell para mi trabajo de VS 2008?

Respuesta

106

Esa configuración durante el proceso de instalación de msysgit está realmente aquí para arreglar el valor de core.autocrlfconfig.

core.autocrlf 

Si es verdad, hace git convertir CRLF al final de las líneas en archivos de texto a LF al leer del sistema de ficheros, y convertir a la inversa cuando se escribe en el sistema de archivos.

La variable se puede establecer en 'input', en cuyo caso la conversión solo se produce al leer desde el sistema de archivos, pero los archivos se escriben con LF al final de las líneas.

Actualmente, las rutas a considerar como "texto" (es decir, estar sujetas al mecanismo autocrlf) se deciden puramente en función de los contenidos.

Me gustaría insistir en no tratar de convertir cualquier cosa automágicamente, los efectos secundarios son demasiado importantes (en términos de conflicto potencial fusión, especialmente en el desarrollo distribuido con diferentes ambientes)

Si sus herramientas puede manejar la terminación de línea al estilo Unix, debe configurarlas para producir líneas Unix, que luego pueden leerse en Windows (VS2008, Notepad ++, ...) y Unix por igual, y pueden ser procesadas por cualquier 'sh' Git-scripts.

Pero con core.autocrlf establecido en falso, la decisión de transformar una terminación de línea de texto será una explícita voluntaria, no un efecto secundario de fondo invisible.


Ver más en "How line ending conversions work with git core.autocrlf between different operating systems"

 
       | Resulting conversion when  | Resulting conversion when 
       | committing files with various | checking out FROM repo - 
       | EOLs INTO repo and    | with mixed files in it and 
       | core.autocrlf value:   | core.autocrlf value:   
-------------------------------------------------------------------------------- 
File    | true  | input  | false | true  | input | false 
-------------------------------------------------------------------------------- 
Windows-CRLF  | CRLF -> LF | CRLF -> LF | as-is | as-is  | as-is | as-is 
Unix -LF   | as-is  | as-is  | as-is | LF -> CRLF | as-is | as-is 
Mac -CR   | as-is  | as-is  | as-is | as-is  | as-is | as-is 
Mixed-CRLF+LF | as-is  | as-is  | as-is | as-is  | as-is | as-is 
Mixed-CRLF+LF+CR | as-is  | as-is  | as-is | as-is  | as-is | as-is 

+0

¡Gracias! Continuaré con la terminación de línea Unix. –

+0

No veo cómo se puede obtener un conflicto de fusión basado en las terminaciones de línea. En caso de que tenga autocrlf True, si obtiene de alguien que tiene CRLF localmente, ¿las terminaciones no se convertirían a LF (antes de la fusión)? (También tendría cualquier CRLF convertido a LF si acaba de enviar localmente) – RJFalconer

+0

@BlueNovember: el razonamiento es que no se puede garantizar que cada Git en cada entorno tenga esa configuración establecida correctamente. Incluso si no tiene conflictos en su entorno, puede causar problemas no sospechados en otros clientes remotos de Git. – VonC

2

Visual Studio 2008 maneja Unix terminaciones de línea sin problemas. Sin embargo, intentará detectar archivos de texto con terminaciones de línea inconsistentes en un intento de solucionarlos. El Bloc de notas, por otro lado, no puede mostrar correctamente los archivos de texto Unix.

+35

suerte compatibilidad Bloc de notas no es un requisito importante. –

+0

No, la compatibilidad con el Bloc de notas no es un problema. Parece que la terminación de Unix es la mejor opción. ¡Gracias! –

+9

Notepad ++ funciona perfectamente con ambos estilos de terminación de línea. – alexandrul

Cuestiones relacionadas