2012-05-29 18 views
5

¿Cómo puedo clonar un repositorio Mercurial para que mi copia de trabajo siempre tenga terminaciones de línea CRLF?Conversión de terminaciones de línea Mercurial UNIX a Windows

Esto es similar a esta pregunta Problems configuring eol extension in Mercurial

Pero me falta algo que no parece funcionar en mi equipo.

Soy nuevo en Mercurial y he usado SVN (TortoiseSVN) durante varios años. Instalé TortoiseHG y estoy trabajando con Brian O'Sullivan's Mercurial: The Definitive Guide libro.

Entonces, una de las primeras cosas que hice fue clonar su repositorio de muestras en mi máquina y encontré que el archivo tenía terminaciones en LF en lugar de la versión CRLF de Windows.

Así que traté de encontrar la opción para manejar esto como lo hice en SVN.

Creé un archivo en % USERPROFILE% \ Mercurial.ini con lo siguiente.

[extensions] 
eol = 

He eliminado el repositorio y lo he comprobado nuevamente. Ningún cambio.

Mirando un poco más vi que podría necesitar un archivo .hgeol. Así que creé uno en la carpeta% USERPROFILE% con

[patterns] 
** = native 

eliminados y se volvieron a clonar el repositorio, el archivo todavía tenía LF del lugar de CRLF.

Intenté nuevamente poner el archivo .hgeol en el directorio principal del repositorio y, por último, poner el comando dentro del archivo Mercurial.ini. También traté de reemplazar el nativo con CRLF.

Me falta algo, ya que parece que esto debería ser todo lo que necesito para que funcione. Tal vez me falta un concepto de conversión automática como lo hizo SVN.

Respuesta

6

El archivo .hgeol debe ser un archivo en la raíz de su repositorio, no en el padre de la raíz, ni en el directorio de usuarios ni dentro del archivo Mercurial.ini.

Para agregarlo a un clon existente, probablemente debe eliminar primero la copia de trabajo existente con hg update null (o hg clone --noupdate). Luego, una vez que haya agregado el archivo .hgeol, puede recuperar su copia de trabajo utilizando hg update, momento en el cual la conversión de EOL tendrá efecto.

No creo que pueda agregarlo directamente a los clones sin antes enviar el archivo a su repositorio.

+0

Voy a intentarlo esta mañana. –

+0

Eso funcionó. Intenté poner el archivo .hgeol en el directorio de trabajo, pero no pude clonarlo porque la carpeta no estaba vacía. Creo que esto me ayuda a entender porque cuando clono mi clon modificado obtengo los finales originales de LF. Esto me dice que solo busca en la carpeta .HG la información e ingnores lo que está en la carpeta de trabajo. Esto probablemente no sea un problema porque en mis repositorios (de la compañía) tendremos las opciones configuradas desde cero. Solo los que no controlo y no he incluido la opción tendrían que hacer esto. –

Cuestiones relacionadas