2009-03-27 4 views
8

Después de migrar a Windows, estoy usando msysgit con su shell bash incluido, y eso funciona bien para mí. Pero tengo problemas: nuestro proceso de construcción de ant no se ejecutará en ese shell, me gustaría usar los xterms de Cygwin en lugar de la ventana de comandos de Windows, ya que la compatibilidad del terminal no es lo suficientemente buena como para ejecutar todo lo demás que quisiera en esa ventana, y así sucesivamente.¿Puedo usar mSysGit y el git de Cygwin?

De hecho, me he pegado a msysgit en el shell de comandos de Windows para no tener que usar una ventana separada para compilar, pero eso tiene aún más problemas: la falta de cd - y la finalización del archivo me está matando, la mayoría de los comandos a los que me gustaría conectar no están presentes, etc.

Así que si cambio a usar el git de Cygwin, o peor, usar ambos en diferentes momentos, van a terminar las líneas ¿muérdeme? ¿El git de Cygwin espera que todo sea \n y cree que está viendo cambios porque mSysGit se convirtió a \r\n al momento de pagar? ¿El git de Cygwin se echará un vistazo como \n y confundirá mi Windows Eclipse, que estoy seguro quiere que todo sea \r\n?

+3

Pregunta de un interesado: ¿ha intentado utilizar MSYS git de Cygwin? Si es así, ¿está funcionando? Gracias. – joce

+2

msysgit no es de Cygwin. He descubierto que puedo usar git y msysgit de Cygwin de manera intercambiable, siempre que tenga cuidado con las configuraciones como core.autocrlf – skiphoppy

Respuesta

10

El enfoque más simple sería configurar cualquier git (msysGit o Cygwin git) para ignorar los estilos crlf.

core.autocrlf=false 

De esta manera, no tiene conflicto de hormigas no deseadas.

+0

Eso me apuntó en la dirección correcta, excepto que creo que lo que tengo que hacer es establecerlo en verdadero desde Cygwin. Tengo que mantener los terminadores de estilo CRLF para compatibilidad con otras aplicaciones de Windows, creo. – skiphoppy

+0

¿Qué otra aplicación de Windows? Como dice Peter Boughton en su respuesta: "La mayoría de las aplicaciones modernas (incluido Eclipse) son perfectamente capaces de usar \ n solamente". – VonC

+0

En realidad tuve problemas para finalizar la línea al usar diferentes versiones de msysGit. Configurar explícitamente autocrlf lo solucionó. –

3

Will git de Cygwin echa un vistazo a como \ n y confundir a mis ventanas Eclipse, que estoy seguro de quiere que todo ser \ r \ n?

La mayoría de las aplicaciones modernas (incluyendo Eclipse) son perfectamente capaces de usar \ n solamente.

Existen algunas excepciones molestas (por ejemplo, el protocolo de correo electrónico), pero en la mayoría de los casos puede utilizar simplemente \ n para todo.

Así que, como dice VonC, simplemente desactive la configuración de autocrlf y todo estará bien.

+0

A menos que skiphoppy tenga un contexto muy particular que requiera el uso de \ r \ n, estoy de acuerdo con usted. +1 – VonC

1

En realidad, simplemente seguir con msysGit no lo salvará. Tuve un problema en el que cada archivo de origen se mostró como cambiado debido al problema de final de línea cuando se usaban diferentes versiones de msysGit. Configurar core.autocrlf en el archivo de configuración de git lo solucionó.

0

Tengo dolor de cabeza en los finales de línea. Estoy usando cygwin git, y siempre informa algunos archivos de texto recién revisados ​​como "modificados". Cuando cambié "core.autocrlf" de "verdadero" a "entrada" diez de los quince archivos desaparecieron de la lista modificada, y los 5 restantes se fueron después de configurar "core.autocrlf" en "false".

No puedo votar por la solución de VonC debido a la baja reputación, pero diría que funciona para mí.

0

Configuré core.autocrlf en falso en msysgit y tomé el cygwin instalado por defecto.

Tuve problemas para verificar desde un símbolo del sistema utilizando las herramientas cygwin y las herramientas mingw enviadas con msysgit, debido a cambios aparentes en los modos de archivo (755 pareció cambiar a 644 en cada archivo). Esto parece ser un problema con respecto al bit ejecutable. el reinicio de git no ayudó.

Sin embargo, hacer la copia inicial desde la ventana de la GUI de msysgit no produjo este problema, y ​​ahora parece ser libre de usar cygwin desde su shell bash o un símbolo del sistema, o msysgit desde su shell bash. En otras palabras, todo parece feliz.

De manera resumida, si ve que todos los archivos parecen cambiar y que las terminaciones de línea no parecen ser la causa del problema, intente consultar desde la GUI.

0

Después de depurar esto por un tiempo lo resolví para mi caso. Copié el archivo id_rsa de una partición de Linux de forma indirecta, dejando los finales de línea en formato LF (Unix). Al abrir el archivo en eclipse y convertir los finales de línea a Windows se solucionó esto. Además, tengo GIT_SSH establecido en Plink (de Putty) siguiendo estas instrucciones: http://www.mainelydesign.com/blog/view/git-plink-for-ssh-on-windows