Uso git-svn
en el trabajo y la gente se queja constantemente de que estoy cometiendo LF
en lugar de CRLF
. (Somos principalmente una tienda de Windows).
Por lo que puedo decir, cuando core.autocrlf
es true
la copy de trabajo es CRLF
, cuando es false
, es LF
, y cuando input
, permanece intacta. Me gusta autocrlf = true
como concepto, pero me gustaría que fuera CRLF
en el índice, ya que eso es lo que se compromete con SVN.
¿Hay alguna manera de establecer qué línea utiliza el índice?
He visto core.eol
, pero esto también parece establecer solo lo que usa la copy de trabajo, no el índice.
Deberá agregar un file llamado .gitattributes
a la raíz de su proyecto. Esto obligará a todos a cometer el mismo final de línea. En su caso, como quiera forzar crlf
, agregará esta línea en .gitattributes
:
* text eol=crlf
Luego, también puede normalizar todos los files en su repository una vez, y no volver a preocuparse por eso: tratar de arreglar los finales de línea con git filter-branch, pero sin tener suerte
También puede consultar la guía de github en el final de línea: https://help.github.com/articles/dealing-with-line-endings
Resulta que git-svn
usa la propiedad svn:eol-style
de SVN para decidir cómo almacenar los finales de línea. Si ingresa en un checkout SVN puro y agrega svn:eol-style
configurado a native
, Git usará CRLF para Windows y LF para Linux / OSX.
También tengo estas configuraciones:
$ git config core.autocrlf false $ git config core.safecrlf true
No tengo nada en mi file .gitattributes
.