El blog de Shackra

Catolicismo Emacs Software libre

“No seas tan abierto de mente o tu cerebro se caerá” ~G.K. Chesterton

enviar cambios del mismo proyecto a bitbucket y a GitHub

Adoro Mercurial y detesto Git. Más que nada porque Mercurial es más sencillo de usar y fue el primer CVD que use alguna vez para profesionalizarme más en esto del desarrollo de software. Mi primer sitio para hospedar mis proyectos de software libre es Bitbucket que es, por mucho, el mejor sitio para hospedar tus proyectos usando Mercurial (aunque hace poco integraron Git, así que puedes escoger qué usar en Bitbucket); aunque no es secreto para nadie que GitHub es algo así como el lugar donde tus proyectos de software deben estar si quieres que hagan muchos forks de tus proyectos™. En fin, no uso Git y no tenia ningun proyecto hospedado ahí, pero averiguando sobre el uso de Travis-ci con Bitbucket me encontré una interesante nota de Miki Tebeka en la cual nos enseña un interesante truquillo para enviar los cambios de tu proyecto al mismo repositorio en dos sitios de hospedaje distintos.

En principio vamos a necesitar el plugin hggit que nos permite convertir cambios entre Git y Mercurial. Ya sabes como instalarlo: pip install hg-git

Lo siguiente seria editar la configuración del repositorio de tu proyecto, tienes que habilitar dos plugins para Mercurial y agregar un hook, edita el .hg/hgrc de tu proyecto:

# ...
[extensions]     
hgext.bookmarks =
hggit =

[hooks]     
outgoing = hg push git+ssh://git@github.com/cuentagithub/proyecto.git || true

(el || true es necesario porque a veces hg push termina correctamente con un valor distinto a cero). Necesitas usar un marcador (o bookmark) para la rama default de tu proyecto, esto es porque las ramas son conceptos distintos en Mercurial y Git, además, así le haces la vida más fácil a hggit(?). ejecuta el comando hg bookmark -r default master. Y eso es todo :). Si deseas saber cómo usar Travis-ci con tu proyecto que ahora se hospeda en GitHub, ¡lee la nota de Miki Tebeka en su blog!

/