La primera vez que me planteé subir algo de código de forma abierta a Internet usé los repositorios de Google Code, y desde entonces hasta hoy he acumulado hasta 15 repositorios distintos correspondientes a otros tantos proyectos:

https://code.google.com/u/101388150953455772115/

Sin embargo, hoy en día el servicio más popular de este tipo es sin duda GitHub. Y hasta casi cierto punto se le puede considerar una especie de red social para desarrolladores. Llevaba un tiempo rondándome la idea de darle un tiento, y ayer por fin me di de alta y repliqué allí todos mis repositorios:

https://github.com/jcmellado?tab=repositories

Curiosamente en Google Code siempre he utilizado Subversion para el control de versiones, pero en GitHub he querido cambiar, honrando el nombre del servicio, y he utilizado git. Para mi no deja de ser un sistema de control de versiones u otro, no tengo preferencias en ese aspecto.

En un principio quería tener los dos servicios sincronizados, pero después de leer documentación y rebuscar un poco por Internet no he encontrado ninguna solución que me acabase de convencer al cien por cien. Aunque evidentemente mantener dos repositorios para un mismo proyecto no tiene sentido a menos que estén automáticamente sincronizados. De momento me he conformado con que GitHub sea una copia de Google Code y con el tiempo ya iré decidiendo como gestionar todo de la mejor manera posible.

Desde el punto de vista técnico, los pasos que he tenido que dar para crear los repositorios en git a partir de uno en Subversion (svn) están bien documentados en Internet, así que sólo he tenido que ir siguiendo el guión.

Primero crear un repositorio git en local haciendo referencia al repositorio svn:

Después recuperar el contenido del repositorio svn:

En mi caso no tengo ramas, ni quería mantener en git ninguna, ni siquiera la trunk de svn, así que la borré:

Un pequeño problema con el que me encontré, es que al subir el historial de cambios de svn a git, mostraba mi dirección de correo electrónico en vez de mi nombre de usuario de GitHub. Afortunadamente encontré en Internet una instrucción para modificar todo el historial de cambios:

El último paso es subir todo desde el repositorio local al repositorio real remoto en GitHub:

Puede parecer mucho trabajo estar haciendo todo esto cada vez, pero en la práctica no actualizo tanto mis proyectos para como que sea un problema, y los repositorios en GitHub se pueden borrar y recrear completamente muy fácilmente.