¿Cómo puedo convertir todos los finales de línea a CRLF, LF o CR durante las operaciones SVN?

StackOverflow https://stackoverflow.com/questions/15687

  •  08-06-2019
  •  | 
  •  

Pregunta

Entonces, estás listo para hacer una gran confirmación SVN y fracasa porque tienes finales de línea inconsistentes en algunos de tus archivos.Lo divertido es que estás viendo miles de archivos que abarcan docenas de carpetas de diferentes profundidades.

¿A qué te dedicas?

¿Fue útil?

Solución

No creo que el pre cometido En realidad, el gancho puede cambiar los datos que se están confirmando; puede no permitir una confirmación, pero no creo que pueda realizar la conversión por usted.

Parece que quieres el propiedad 'svn:eol-style' configurado en 'nativo': esto convertirá automáticamente las nuevas líneas a lo que se use en su plataforma (use 'CRLF', 'CR' o 'LF' para obtenerlas independientemente de lo que quiera el sistema operativo).

Puedes usar propiedades automáticas para que todos los archivos futuros que cree tengan esta propiedad establecida (los accesorios automáticos se manejan en el lado del cliente, por lo que tendría que configurar esto para cada usuario).

Otros consejos

Lo primero es limpiar todo.¿Estás en Windows o Unix/Linux/Mac?

Si estás en Unix/Linux/Mac, puedes probar algo como esto:

$ find . -type f -name "*.java" -exec dos2unix {}\;

Eso si tienes dos2unix en tu caja.No está en mi Mac ni en ninguna de las seis máquinas Linux que tenemos.Parece que no instalamos este paquete en particular.Afortunadamente, es bastante fácil de encontrar.

Tenga cuidado al usarlo porque no querrá dañar archivos binarios.

Una vez que hayas limpiado todo, debes poner el svn:eol-style propiedad en sus archivos.Configurarlo en nativo extraerá el archivo con el final de línea correcto para su máquina, pero los almacenará en formato de final de línea Unix.Las otras tres opciones son "LF" para Unix, "CRLF" para Windows y "CR" para Mac anteriores a Mac OS X.La mayoría de la gente considera que "nativo" es el que mejor se ejercita.El único problema con Native es que no registrará un archivo con finales de línea mixtos, mientras que "LF" y "CRLF" sí lo harán.

Una vez que hagas eso, deberías obtener un gancho de precompromiso eso le permitirá imponer finales de línea en archivos particulares.Luego, enseña a tus desarrolladores a usar autopropiedades.El gancho de confirmación previa evitará cualquier confirmación a menos que la propiedad se coloque en el archivo. Un desarrollador rechaza su confirmación una o dos veces y configurará las propiedades automáticas por su cuenta.

Agrega un gancho de precompromiso que analiza el contenido del archivo y realiza la manipulación de CRLF/LF/CR/etc antes de escribirlo en SVN.

Puedes considerar usar un comando como el de Linux. dos2unix para la conversión.Al ser un comando de Linux, es fácil usarlo en modo por lotes con scripts, etc.No sé si existe un equivalente para otros sistemas operativos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top