2011-07-12 13 views
7

He estado intentando establecer archivos específicos para usar siempre lf y no crlf, independientemente de autocrlf en el sistema local.¿Cómo configuro todos los archivos en un subdirectorio para usar un eol específico usando gitattributes?

Intenté crear un .gitattributes en la raíz del proyecto que solo contenía SquishIt.Tests/js/*.js eol=lf y también intenté SquishIt.Tests/js/ eol=lf. Empujé ambos intentos hacia mi control remoto y luego intenté clonarlo localmente dos veces. Los archivos en/js/siempre aparecen con CR + LF en ambos casos, ya que autocrlf está activado globalmente.

Estoy en una máquina con Windows, por si acaso no estaba claro. ¿Lo que intento lograr es posible?

Respuesta

10

Quería tener todos los archivos de texto forzados a usar LF excepto un subdirectorio (.idea) que está forzado a usar 'CRLF'. Este es el aspecto de mis .gitattributes:

* text eol=lf 
/.idea/* text eol=crlf 

Así que supongo debe ser similar a la suya:

* text=auto 
/SquishIt.Tests/js/* text eol=lf 
+0

Sucede aquí exactamente para esto .idea - Agradecería que agregara un enlace a algunos documentos :) En ¿Por qué el '/' principal? Además, ¿cómo puede uno incluir archivos en subcarpetas como '.idea/dictionaries' –

+0

A su segunda pregunta, simplemente puede usar /.idea/dictionaries/* para hacer coincidir los archivos en este subdirectorio. – Tarnschaf

+0

Si desea incluir archivos en una carpeta y TODAS las subcarpetas, use '/.idea/**'. Si desea incluir archivos en CUALQUIER subcarpeta llamada .idea independientemente de la profundidad, use '.idea/*'. – SensorSmith

0

Establecería autocrlf en falso y establecerá core.whitespace en cr-at-eol. Es mejor dejar que tus editores lidien con la diferencia en los finales de línea. Deja que git los almacene como están.

Espero que esto ayude.

+0

Hay pruebas de unidad que vuelve a leer el contenido de archivos y los archivos deben mantener sus finales de línea normalizados a través todas las plataformas, independientemente de la configuración de autocrlf, para garantizar que las pruebas pasen. No puedo controlar si los contribuyentes tienen estas configuraciones. – Akkuma

+0

Haga que las pruebas sean más resistentes. No me gustaría que nada como vcs interfiera con lo que contiene un archivo. –

+1

Gracias, descubrí una forma de hacer que las pruebas sean más resistentes sin tener que preocuparme más por los vcs. Para los interesados, básicamente leo el archivo, normalizo los finales de línea y reescribo el archivo para garantizar que tenga las terminaciones de línea correctas. – Akkuma

Cuestiones relacionadas