Migrar los repositorios svn a otro servidor
- Posted by Amaia on August 12, 2008 at 06:16 PM
- Comments: 3 (view/add your own)
- tags: subversion, svn
Ya sé que lo que más mola ahora es Git, pero de momento en Dabne seguimos manteniendo nuestros repositorios de código en Subversion, mientras vamos trasteando con Git y valorando si cambiar del todo o seguir con un híbrido de svn + git.
El caso es que esta semana he tenido que mover los repos a un nuevo servidor y así es cómo lo he hecho.
En el servidor donde están los repos hay que hacer un 'dump' de cada uno de ellos, copiarlos al servidor 2, y cargarlos en un repo nuevo recién creadito.
Sería así:
serv1$ svnadmin dump nombre_repo > nombre_repo.dump
Se copian los ficheros .dump al servidor 2 y se hace:
serv2$ svnadmin create nombre_repo
serv2$ svnadmin load nombre_repo < nombre_repo.dump
Como tenía varios he probado a hacerlo con un scriptcillo en ruby directamente desde la línea de comandos:
serv1$ ruby -e "Dir.foreach('.'){|x| system \"svnadmin dump #{x} > #{x}.dump\"}"
serv2$ ruby -e "Dir.glob('*.dump'){|x| system \"svnadmin create #{x.split('.')[0]} \"}"
serv2$ ruby -e "Dir.glob('*.dump'){|x| system \"svnadmin load #{x.split('.')[0]} < #{x} \"}"
Si la url del repositorio cambia luego en cada copia de trabajo hay que ejecutar:
$ svn switch —relocate url_antigua url_nueva
Cuidado con lo que va delante de relocate que son dos -, no uno de esos largos.
Esta vez he configurado el acceso a los repositorios con apache2 por https, pero eso queda para otro post.