Febrero
2009
Migrando de SVN a GIT en TCOS
Me lo he pensado muchas veces pero después de usar GIT durante una semana he visto que es bastante superior a SVN.
A partir de ahora TCOS usará un repositorio GIT, bueno, mejor dicho varios, uno por paquete, creo que es más simple de mantener, hacer ramas y etiquetar que antes (todo en el trunk)
Para que la migración no sea dolorosa de momento queda en marcha tanto el SVN como el TRAC (en modo lectura), ahora no necesitamos TRAC ya que su utilidad era para ver diferencias de versiones y eso con git se hace con gitweb.
El repositorio se puede descargar de manera anónima (HTTP) y sólo se puede subir mediante SSH, no somos muchos los que podemos escribir en el repositorio por lo que no es demasiado problema. Ejemplo para clonar repositorio (lo que sería un checkout de SVN).
Anónimo: git clone http://tcosproject.org/git/initramfs-tools-tcos.git Privado: git clone ssh://git@tcosproject.org/git/initramfs-tools-tcos.git
He preparado varios scripts para hacer la migración desde el lado del servidor y desde el cliente:
- tcos-migrate-svn2git.sh (SERVIDOR) Este hace un ls al trunk del SVN se carga lo que sean directorios y se importa (mediante git-svn clone y git clone) a un repositorio git puro
- start-git-chroot.sh (SERVIDOR) Arranca en un chroot el servidor SSH en el puerto 22. El chroot lo he hecho con debootstrap al que he añadido el servidor SSH, las herramientas de git y la configuración para que el usuario git, sólo acepte la autenticación por clave pública. Quizás tenga que montar un fail2ban.
- update-all.sh (CLIENTE) Este lo he creado en mi home para descargar git de nuevo, usa la conexión ssh al servidor para poder hacer commits.
- mi ~/.gitconfig (CLIENTE) Mi configuración de publicación de GIT, colores y alias. ¿Como hacer que siempre se firme con mi clave GPG?
Hay miles de sitios donde aprender a usar mejor git, este, este, este, o la parte de empaquetado en Debian con GIT.
PD.- Varias personas se han quejado da de que no entienden lo que escribo por ser demasiado técnico... ya hablaremos del gobierno en otra ocasión.
UPDATE: Cambiados enlaces de gitweb a cgit (es más bonito y más configurable)
Yo te iba a preguntar tiempo atrás si tenias en mente migrar a GIT... Realmente es poderoso y ya veo que tomaste la desición correcta :)