tutorial rails instalar español ejemplos descargar caracteristicas ruby-on-rails linux git deployment newline

ruby-on-rails - instalar - ruby on rails tutorial español



¿Están bien las líneas CRLF en un proyecto de Rails implementado en Linux? (2)

Tengo un repositorio de Git (originalmente CVS, luego SVN, ahora Git) que contiene un proyecto de Rails que se ha implementado en Linux desde hace un tiempo. Todo parece funcionar bien.

Ahora que me he convertido a git, veo que muchos de mis archivos en el repositorio contienen terminaciones de línea CRLF . Me encantaría que todo sea coherente ( LF ), pero no a expensas de perder el historial de edición de cada archivo que tenga terminaciones de línea CRLF .

¿Puedes pensar en alguna razón por la que no puedo dejar los archivos como están? Me parece recordar que hay un problema con los scripts de shell o los archivos cron o algo que no respondió muy bien a CRLF .

Además, sé todo sobre las opciones de Git core.autocrlf y core.safecrlf , pero ¿hay alguna forma de que convierta todos los archivos de texto de CRLF a LF en el proceso de pago (para el lado de Linux) ... es decir, una opción core.autolf ¿o algo similar?


Si está bien que reescriba el historial de su repositorio (consulte los problemas con el historial de reescritura ), puede usar git filter-branch para convertir CRLF a LF:

git filter-branch --tree-filter ''find . -path ''./.git'' -prune -o -type f -exec dos2unix /{} /;'' HEAD

Tenga en cuenta que si tiene archivos binarios en su repositorio, deberá refinar el comando find para excluirlos.


Un comentario a la respuesta de davitenio y el comentario de Daniel Beardsley; Creo que podrías usar este pequeño programa como un envoltorio alrededor de dos2unix:

#!/bin/sh for f in $@; do if [ $(file -b -n -i -m /dev/null $f | grep -c "text") -gt 0 ]; then dos2unix $f fi done

aunque es probable que aún haya algún caso en la esquina que fracase.