
Gracias a este hook, despues de cada commit que realice cualquier miembro del equipo de desarrollo,
se actualizará el contenido de apache para así poder visualizar/testear los últimos cambios desde el navegador web. En mi opinión esta configuración resulta muy útil en entornos de desarrollo.
Para empezar, debemos realizar un checkout sobre nuestro directorio /var/www para disponer de la estructura física de archivos del repositorio:
$ cd /var/www $ svn checkout http://IP/svn/REPOSITORIOYa tenemos volcado nuestro repositorio en el directorio de apache. Ahora para que después de cada commit se actualice dicho repositorio, creamos nuestro hook en subversion:
Accedemos al directorio hook contenido en nuestro repositorio SVN
/rutaCompletaRepositorio/hook/
en mi caso
/svn/miRepositorio/hook/
en esta ruta encontraremos varias plantillas, entre ellas la que nos interesa
-rw-r--r-- 1 www-data root 2022 Dec 7 19:23 post-commit.tmpl
copiamos el archivo, lo renombramos como post-commit y le damos permisos de ejecución, además nos aseguramos de que el propietario del archivo sea el usuario www-data
$ cp post-commit.tmpl post-commit $ chmod 755 post-commit $ chown www-data post-commit $ ls -l post-commit -rwxr-xr-x 1 www-data root 2057 Jan 3 18:27 post-commit
Ahora sólo nos falta añadir las acciones a realizar después de cada commit, para ello añadimos al final del archivo las siguientes líneas:
cd /var/www/Repositorio svn up
Y listo, ya tenemos nuestro hook funcionando.
Además del hook post-commit, existen varios mas que se detallan a continuación:
-rw-r--r-- 1 www-data root 2022 Dec 7 19:23 post-commit.tmpl -rw-r--r-- 1 www-data root 1663 Dec 7 19:23 post-lock.tmpl -rw-r--r-- 1 www-data root 2344 Dec 7 19:23 post-revprop-change.tmpl -rw-r--r-- 1 www-data root 1592 Dec 7 19:23 post-unlock.tmpl -rw-r--r-- 1 www-data root 3510 Dec 7 19:23 pre-commit.tmpl -rw-r--r-- 1 www-data root 2434 Dec 7 19:23 pre-lock.tmpl -rw-r--r-- 1 www-data root 2818 Dec 7 19:23 pre-revprop-change.tmpl -rw-r--r-- 1 www-data root 2122 Dec 7 19:23 pre-unlock.tmpl -rw-r--r-- 1 www-data root 2852 Dec 7 19:23 start-commit.tmpl
Como información extra, para que al acceder a la aplicación web mediante un navegador se nos cargue directamente el index de nuestro proyecto, modificamos el archivo /etc/apache2/sites-available/default
Sustituimos
DocumentRoot /var/www
por
DocumentRoot /var/www/Repositorio
Comentarios
Publicar un comentario