Artículos serializados de Sitecore con autocrlf de Git

Estamos experimentando un problema con los artículos serializados. Nuestro caso de uso es trabajar localmente con bases de datos propias y sincronizar todos los elementos con Unicorn . Luego empujamos todos los artículos a nuestro repository de Git. La configuration local de Git está configurada en autocrlf=true . Esto es necesario porque tenemos algunos ingenieros frontend en el proyecto que funcionan con Mac OS X. Serializamos la database "core" completa con Unicorn (como en la configuration pnetworkingeterminada después de la installation).

Parece que algunos de los elementos en la database central se crearon con un sistema que no es de Windows. Si miramos el elemento /sitecore/system/Dictionary/O/One or more items have been changed Do you want to overwrite these changes ? Cuando serializo este elemento y lo miro, veo que el campo Key contiene varias líneas y las líneas de alimentación están marcadas con " \n " y que la content-length del content-length es 77 (ver la captura de pantalla adjunta de Notepad ++, el lado izquierdo). Después de esto, envío este file al repository de Git y lo retiro en otra estación de trabajo del repository. Debido a la configuration autocrlf=true , la " \n " se convierte automáticamente en " \r\n ", lo que da como resultado una content-length de content-length de 79 lugar de 77 originales (ver el lado derecho de la captura de pantalla adjunta). Cuando quiero deserializar este ítem obtengo la exception de que el contenido-longitud no coincide.

enter image description here

¿Alguien ha tenido ese error antes y qué hizo para evitarlo? Veo la opción de desactivar el autocrlf o excluir estos elementos de la synchronization de serialization. Pero me gustaría evitar hacer una de estas opciones.

Puede controlar ese comportamiento desde un file .gitattributes .

En mi file de attributes, los files .item se configuran para tratarse como files binarys.

Este es el file .gitattributes que uso en nuestros proyectos.

 * text=auto # These files are text and should be normalized (convert crlf => lf) *.cs text diff=csharp *.xaml text *.csproj text *.sln text *.tt text *.ps1 text *.cmd text *.msbuild text *.md text # TDS files should be treated as binary *.item -text