Convertir un repositorio subversion a un repositorio mercurial

Por trabajo, comencé a usar mercurial como sistema de control de versiones. Me fui acostumbrando al modo de trabajo de Mercurial y ahora me está gustando más que subversion. Ahora, algunas prácticas que tenía pendientes y que las tenía con subversion me he planteado la migración a Mercurial.

La pregunta es: ¿se puede hacer la migración sin perder el log de lo hecho anteriormente? La respuesta es sí. Tras buscar un poco en la documentación (link) se encuentra un pequeño manual sobre cómo hacerlo. Es más, se pueden convertir desde varios Sistemas de Control de Versiones como Bazaar o CVS. 

Por ejemplo, desde subversion, necesitamos un módulo de python: python-subversion.

$ sudo apt-get install python-subversion

 Luego tendríamos que crear un directorio y hacer un init:

$ mkdir proyecto
$ cd proyecto
$ hg init

Ahora, tenemos que editar el fichero .hg/hgrc y añadirle una extensión.

$ vim .hg/hgrc

Añadimos las líneas como sigue:

[extensions]
hgext.convert=

Ahora, importamos el proyecto con la opción convert de mercurial. Por ejemplo, si el repositorio lo tenemos en local:

$ hg convert file:///path/to/repo_svn
$ hg update

Ahora podemos trabajar con el mismo repositorio pero con mercurial y sin perder el historial.

3 comentarios:

boriel dijo...

Excelente tutorial! Creo que lo voy a probar, pasando mi repositorio del compilador a Hg. Así, si se casca, te echaré la culpa.

snatverk dijo...

En mi casa funcionaba XD. Yo lo he probado y tengo el nuevo repositorio en bitbucket.

Boriel dijo...

Al final funcionó de maravilla (lo usé para migrar el repositorio de SVN a Mercurial). ¡Gracias! De hecho, mira: https://code.boriel.net/hg/ por ahora lo tengo alojado ahí.

Estoy superencantado con Mercurial (pero nunca me atrevía a dar el paso porque pensaba que la migración era complicada). Pero para nada.

Prueba a hacerte un clone si quieres ver cosas (he actualizado muchísimo desde que hice la migración) :D

Publicar un comentario en la entrada