De svn a git en 5 minutos

(5 minutos después de que uno coja práctica, pero al prinicipio hay que hacer el proceso varias veces)

Hace un par de meses tuve que pasar varios repositorios de subversion a git y estos son los pasos necesarios más un par de configuraciones adicionales que vale la pena recordar (El tutorial original está en la página de Jon Maddox)

Primero, mapear los usuarios de subversion a usuarios de git, descargar el repositorio y verificar que los commits queden asignados correctamente:

acme@volatile:~$ cat authors.txt
acme = Luis Uribe <acme@eviled.org>
foo = Bar <foo@bar>

acme@volatile:~$ mkdir git_repo ; cd git_repo
acme@volatile:~$ git-svn init http://repo/path --no-metadata
acme@volatile:~$ git config svn.authorsfile ../authors.txt
acme@volatile:~$ git-svn fetch

El script bajará las revisiones del repositorio después de un par de minutos.

El próximo paso es clonar el repositorio et voilá

acme@volatile:~$ cd ..
acme@volatile:~$ git clone git_repo new_repo

Ahora bien, la idea es tener el código en un repositorio bare de git para que otros desarrolladores puedan hacer push y pull.

Creamos el repositorio bare (Puede ser en otro servidor que tengamos para tal fin):

root@server:~# mkdir proyecto.git
root@server:~# cd proyecto.git
root@server:~# git init --bare
root@server:~# vim description
root@server:~# cp post-receive hooks/ // Hook para el envio de correos después de cada commit 
root@server:~# chmod +x hooks/post-receive
root@server:~# cat config // Líneas para el envio de correos
[hooks]
    allowdeletebranch = true
    mailinglist = foo@bar.com
    envelopesender = foo@bar.com
    emailprefix = [My rockstar project]

Por último hay que borrar el target [origin] del repositorio local y configurarlo para que apunte a nuestro servidor.

git remote add origin server:/proyecto.git/
git push origin master
Anuncios
Post a comment or leave a trackback: Trackback URL.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: