HARLEY`s BLOG

yet another webblog

Respaldo de SVN Publico

Buenas, en este post paso a detallar un problema que estoy experimentando y la solución que he encontrado.

Resulta que estoy cursando PIS 2008 (Proyecto de Ingeniería de Software) materia dictada para Ingeniería de Sistemas en la Facultad de Ingeniería de la República Oriental del Uruguay (FinG) . En la cual se enfrentan un grupo de 11 estudiantes al desarrollo de un Proyecto de Software, convatiendo el tiempo, costos, comunicaciones, discusiones, etc.

En esta materia estoy cumpliendo el rol de Responsable SCM (Control de Cambios), o dicho de otra manera, el responsable del repositorio, linea base y ambiente de configuración. Para esto, tuve que levantar un repositorio SVN (en ves de CVS, simplemente porque es mejor :D), eligiendo como Hosting a Google Code (solo porque todos teníamos cuenta google). Por si quieren ver el proyecto http://tita.googlecode.com (que nombre!! jaja ).

Entre una de las cosas a realizar por este rol, son los respaldos del repositorio. He aquí el meollo del asunto, como hago un respaldo de un SVN??

Bueno, la respuesta no fue fácil de encontrar, por eso se las explico aqui:

Para realizar el respaldo utilice el programa svnsyn, el cual nos permite realizar un mirror (espejo) de un repositorio.

Primero que nada, creamos un nuevo repositorio sobre nuestro servidor Subversion (SVN) local.

$ MIREPO=/home/io/proy
$ svnadmin create $MIREPO

Luego creamos la siguiente entrada:

$ echo “#!/bin/sh” >$MIREPO/hooks/pre-revprop-change
$ chmod +x $MIREPO/hooks/pre-revprop-change

Y por ultimo:

$ svnsync init file://$MIREPO http://SVN.servidor.remoto.aqui/
$ svnsync sync file://$MIREPO

De esta manera nuestro repositorio local quedara sincronizado con nuestro servidor publico SVN. Volviendo a ejecutar la ultima linea, sincronizaremos los repositorio. Por tanto, me hice un script que ejecute dicho comando, y luego le realice una entrada a cron (programa para ejecución automatizada) para que se ejecute dicho script todos los días a la 1:07 am.

Para realizar esto, simplemente ejecutamos:

$ crontab -e

Se abrira el VI (programa para edicion de archivos) y le agregaremos la siguiente linea:

07 1 * * * root /ruta/del/script >> /ruta/del/log 2>&1

Por mas informacion acerca de como utilizar cron, le recomiendo que lean esta pagina (http://www.linuxhelp.net/guides/cron/).

Y bueno, de esta manera, tendremos un mirror del SVN publico en nuestro servidor local, por si alguien hackea a google :S.

Fuente: http://kylecordes.com/2007/06/08/svnsync-svn-backup/

Sin Comentarios, Tu puedes ser el primero!

Contestar