Migrando de Mercurial a Git

Falkirk wheel

Una vez decidido a utilizar Git para mis repositorios surgió la necesidad de convertir los repositorios que ya tenía en Mercurial  a este sistema.

Si bien podía simplemente iniciar un repositorio en Git con el estado actual de cada proyecto, quería ser capaz de mantener la historia del repositorio con sus fechas, así como la diferentes ramas en las que hubiera estado trabajando.

Por suerte, he dado con el script de migración de fast-export que incluyo a continuación y que cumplió a la perfección con este cometido.

¿Caracol deportivo?

Bonnet Ornaments

Situémonos a comienzos del siglo XX. En esa época los automóviles marcaban sus diferencias no sólo por la performance de sus motores o el lujo en sus interiores sino por los adornos visibles en el exterior, como las parrillas o faros. Y dentro de esos adornos, destacaban de forma especial las tapas de radiador. Visitando una exposición de autos antiguos, encontré una vitrina donde se encontraba el modelo que muestro en la imagen.

¿Quién puede haber sido el genio del marketing que pensó que un caracol era un adorno ideal para poner en el capot de un coche? Estoy de acuerdo en que los «cavallinos», herraduras, avioncitos y victorias aladas hayan estado muy vistos pero, ¿no había otro animal o símbolo disponible?

Me imagino cómo habrá sido la reunión de «brainstorming» en la empresa: El gerente de turno les habrá dado para elegir entre un tortuga hibernando, un gusano, un corcho de botella y una chica a lomos (o debería decir «a casita») de un caracol. Y los votos habrán ido al adorno que daba más imagen de velocidad.

Sea como fuere, parece que alguien finalmente se atrevió y terminó exhibiendo orgullosamente al dichoso gasterópodo sobre el radiador de su coche nuevo.

Virtual hosts HTTPS certificates

Bowl con M&M

Existe un problema de base cuando se quieren disponer múltiples servicios web identificados por nombre desde un mismo servidor (virtual hosts) y se pretende dar acceso a los mismos a través del protocolo HTTPS, como se explica en name-based HTTPS servers.

El problema radica en que, para establecer la conexión SSL de base que requiere el protocolo HTTPS, se debe contar con el certificado del servidor. Pero, en el caso de poseer múltiples servicios web alojados en el mismo servidor, el servidor no sabría cuál certificado aportar hasta recibir el nombre de host que desea ser accedido lo que resulta imposible dado que la conexión SSL aún no está establecida. Continuar leyendo «Virtual hosts HTTPS certificates»

Mercurial sobre Nginx

lava lamp

Desde que empecé a utilizar Mercurial me ha parecido una herramienta excelente para el control de versiones.

Además de ser open source, la encuentro ágil, sencilla y multiplataforma y con una documentación (Mercurial Red Book) que ya le gustaría tener a otros. Basta con sólo leer este único manual para comprender el concepto detrás del control de versiones distribuído, los comandos de uso, la administración de los repositorios y la arquitectura interna del producto.

Pero, la Ley de Metcalfe (que otros quieren rebautizar como Teoría del bar lleno) ha hecho que los usuarios de DVCS utilicen en forma masiva Git, quizás impulsados más por el éxito de GitHub que por el sistema de control de versiones sobre el que se basa.

El procedimiento que se describe a continuación es con el cual monté el repositorio web de Cross Forests basado en Mercurial hasta que, siguiendo la corriente, lo terminé migrando finalmente a Git.
Esta instalación funcionó correctamente durante varios años (desde el 2014 hasta finales de 2017) y, si bien puede servir de referencia para futuras instalaciones, debe tenerse en cuenta que los sistemas y productos en los que se basa puedan haber sufrido cambios que requieran actualizar el procedimiento aquí descripto.

Continuar leyendo «Mercurial sobre Nginx»