2012-01-03 16 views
11

En un proyecto bastante grande, me gustaría poner el mismo archivo (o carpeta) en diferentes ubicaciones. Cuando se cambia en una ubicación, los cambios deben propagarse. En Subversion, podría usar elementos externos para lograr este comportamiento.Seguimiento de enlaces duros o simbólicos con mercurial en Windows

Intenté resolver esto usando enlaces duros y enlaces simbólicos, pero Mercurial parece no rastrear ninguno de ellos. En cambio, compromete el contenido de los archivos a su repositorio en lugar de la propiedad del enlace. Cuando clono el repositorio, la información se pierde.

¿Es este un comportamiento específico de Windows de Mercurial o no puede rastrear enlaces en absoluto? ¿Hay alguna otra forma de rastrear un archivo al que se pueda acceder desde diferentes ubicaciones en Mercurial?

Respuesta

15

Mercurial puede rastrear enlaces simbólicos, pero se ven extraños cuando se desprotege en Windows. Lo que ocurre es que Mercurial crea un archivo con el destino de enlace como el archivo contenido. Lamentablemente, no hay soporte para crear enlaces simbólicos reales en los sistemas Windows que los admiten, como Windows Vista. El resultado de esto es que no puede usar enlaces simbólicos en un repositorio que se supone que es portátil entre ambos sistemas. Por favor, see the discussion in Issue1825 para más sobre esta característica.

El partido más parecido para svn:externals es Mercurial subrepositories. Dependiendo de cómo haya usado svn:externals, los subrepos pueden ser o no ser lo que usted desea. Por favor, see my answer a otra pregunta sobre subrepos para algunos consejos. Escribí parte del código para los subrepos y fuera de mi cabeza, creo que montar un subrepo varias veces en el mismo repositorio principal suena como una receta para la confusión. Pero quizás puedas hacer que funcione, solo ten en cuenta que los subrepos son una parte difícil de Mercurial.

+2

Pero NTFS admite enlaces simbólicos desde Windows Vista. – fschoenm

+0

Correcto, había olvidado que Windows recientemente agregó soporte de enlace simbólico. No tenemos soporte para crearlos, desafortunadamente. [Issue1825] (http://mercurial.selenic.com/bts/issue1825) está relacionado con esto. –

+0

¿Recientemente? Vista fue lanzado hace 5 años;) – fschoenm

Cuestiones relacionadas