svn line-endings

¿Cómo debería arreglar "svn: Inconsistent line ending style"?



line-endings (19)

¿El guión definitivamente tocó todos y cada uno de los archivos de texto (suponiendo que tienes dos2unix instalado, de lo contrario sería por eso ...)?

Las otras cosas en las que puedo pensar es verificar que todos los archivos tengan su tipo de mime configurado correctamente (¿no tienes un archivo binario que de alguna manera esté marcado como un archivo de texto registrado, tal vez?).

Dicho esto, si se encuentra en un entorno con varios sistemas operativos no considero una buena idea establecer svn: eol-style en CRLF como se describe en la publicación de blog anterior si está compartiendo y editando archivos de texto entre sistemas operativos. Porque si lo haces de esa manera, los archivos que se ven bien en Windows están llenos de caracteres de control en Unix. Es mejor usar ''nativo'' como el estilo EOL.

Cuando ejecuto "svn propedit svn: ignore". en la raíz de mi repositorio svn, aparece este error: svn: estilo de terminación de línea inconsistente

He intentado ejecutar este script: http://blog.eflow.org/archives/130 que ejecuta dos2unix y establece el estilo eol en todos los archivos, sin embargo, este problema aún persiste. ¿Alguna idea de lo que podría estar mal?


Corriendo

unix2dos [file]

via cygwin solucionó esto por mí.


El problema ocurrió después de que se hicieron algunas modificaciones en varios archivos de texto de tal manera que solo /n se añadieron para separar ciertas líneas, mientras que normalmente /r/n terminan cada línea. Entonces, la solución fue usar Notepad ++ para encontrar ([^/r])/n y reemplazar con $1/r/n . De esta forma, los personajes de fin de línea eran consistentes en todas partes.


En NetBeans puedes usar el complemento " Mostrar y cambiar finales de línea ".

Después de instalarlo y reiniciar NetBeans, el estilo de fin de línea se muestra en el lado derecho de la barra de estado. Puede hacer clic y seleccionar el final al que desea convertir el archivo.


En mi caso yo estaba editando en Windows. Arreglar:

  1. Abrir archivo en Notepad ++
  2. Convertir línea que termina en Unix (menú Edición -> Conversión EOL -> Unix)
  3. Salvar
  4. Convertir terminaciones de línea a Windows (menú Edición -> Conversión EOL -> Windows)
  5. Salvar

Esto lo hizo.


En mi caso, el error ocurrió porque el archivo tenía la codificación "UCS-2 LE BOM". Los archivos con ANSI estaban bien. Revisé los finales de línea, en todos los archivos estaban correctos. Parece que (al menos en mi versión de SVN) los archivos de char de ancho a veces no se reconocen correctamente.

La solución más simple es eliminar la propiedad "svn: eol-style".


En mi caso, la propiedad svn:eol-style se estableció en un archivo. Y "algunas líneas del archivo estaban separadas por terminaciones de línea UNIX (carácter LF), mientras que otras estaban separadas por terminaciones de línea estilo DOS (caracteres CR + LF)". Here hay otra discusión detallada de este problema.
"Edit"->"EOL Conversion"->"Windows format" en Notepad++ resolvió el problema para mí.



Mi problema era que estaba obteniendo esto en Visual Studio.NET. Para solucionarlo, copié todo el texto del archivo en el bloc de notas y lo guardé desde el Bloc de notas a "xxx.aspx" o el nombre de archivo adecuado. Luego, en Visual Studio, me pidieron que volviera a cargar un archivo modificado, y listo: un cuadro de diálogo preguntándome si me gustaría normalizar mis finales de línea. Problema resuelto.


Para convertir consistentemente terminaciones de línea de Windows a UNIX utilizando perl (1):

perl -p -i.bak -e ''s#/r/n#/n#go'' my-file.txt

Para convertir de UNIX a Windows:

perl -p -i.bak -e ''s#/n#/r/n#go'' my-file.txt


Para mac osx, obtuve este error para un archivo y tuve que convertirlo usando dos2mac y luego mac2unix. Una vez que lo hice, solucionó el problema de los finales de línea quejándose.


Recibí el mismo mensaje de error cuando intento svn propset eol-style:native un archivo PHP svn propset eol-style:native en emacs, así que con suerte esto ayudará a alguien que llegue a esta pregunta.

Tuve algo como lo siguiente:

str_replace(''</li>^M<br>'', ''</li>'', $text);

Donde ^M es un carácter único (caret escape for carriage return).

La solución fue cambiar esa línea al equivalente:

str_replace("</li>/r<br>", ''</li>'', $text);

Tenga en cuenta las comillas dobles en lugar de comillas simples!


Recibí este error, pero terminó siendo un archivo que faltaba el último Fin de la Mentira (última línea incompleta).

Corrigiendo esto abriendo el archivo en VI y guardándolo solucionado.


Si lo obtiene mientras hace el propedit, ¡entonces me parece más que SVN se queja del formato del archivo de texto que está usando para las propiedades!

¿En qué SO estás? ¿Qué editor estás usando para propedit? Si el comando propedit todavía activa un editor, usaría este editor para verificar qué terminaciones de línea hay allí (vi hace esto IIRC).


Si solo ocurre con uno o dos archivos, también puede abrir el archivo, copiar y pegar el contenido en un archivo nuevo (con un editor de texto normal) y guardarlo. Este archivo se puede agregar (renombrar o mover para que sea el nombre correcto).


Tuve el mismo problema al ejecutar javadoc a través de una tarea ant en una máquina con Windows.

Lo arreglé agregando <fixcrlf srcdir="${dir.javadoc}" eol="dos"/> debajo de la tarea javadoc ant.


Tuve un problema similar en un archivo que funcionaba mucho antes. En Notepad ++, he elegido convertir el formato a UTF-8. Esto funcionó para mí.


vi no me mostró la línea incorrecta, así que eliminé el final de las líneas de la sección de comentarios, las releí (hasta END) y guardé el archivo. funcionó después de eso.

NOTA: haga una copia de respaldo de su archivo revprop antes de ajustarlo. si lo pasas, no hay vuelta atrás


Subversion no se queja del contenido de ningún archivo, sino del contenido de la propiedad svn: ignore. Una forma de solucionar esto es simplemente eliminar la propiedad svn:ignore con svn propdel y luego volver a svn propdel .

Otra forma que puede ser más fácil si tiene muchas líneas en su svn:ignore :

  1. Obtenga el valor de svn: ignore en un archivo temporal como este:

    svn propget svn:ignore . > temp

  2. arregla las terminaciones de línea en el archivo temp
  3. Establezca el valor de svn: ignore desde el archivo fijo como este:

    svn propset svn:ignore -F temp .