tutorial tortoise subversion svn version-control eol

tortoise - ¿Cómo puedo convertir todas las terminaciones de línea en CRLF, LF o CR durante las operaciones SVN?



svn vs git (4)

Entonces, están listos para hacer un gran Commit SVN y lo bombardean porque tienen terminaciones de línea inconsistentes en algunos de sus archivos. La parte divertida es que estás viendo miles de archivos que abarcan docenas de carpetas de diferentes profundidades.

¿Qué haces?


Agregue un enlace precompromiso que analiza el contenido del archivo y realiza el corte de CRLF / LF / CR / etc por usted antes de que se escriba en SVN.


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


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 es 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 desea enviar archivos binarios.

Una vez que haya limpiado todo, debe poner la propiedad svn:eol-style en sus archivos. Al establecerlo en native , el archivo será procesado con el final de línea correcto para su máquina, pero guárdelos 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 las personas encuentran que "nativo" es el que mejor funciona. El único problema con Native es que no verificará en un archivo con terminaciones de línea mixtas, mientras que "LF" y "CRLF" lo harán.

Una vez que lo hagas, deberías obtener un gancho precompromiso que te permitirá hacer cumplir las terminaciones de línea en archivos particulares. Luego, enseñe a sus desarrolladores a usar autopropiedades . El enlace de precompromiso evitará cualquier compromiso 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.


No creo que el enlace precompromiso realmente pueda cambiar los datos que se están comprometiendo, puede rechazar una confirmación, pero no creo que pueda hacer la conversión por usted.

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

Puede usar las 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 deberá configurarlos para cada usuario).