Subversion post-commit hook. Actualizar los archivos después de enviar un commit de subversion

Supongamos que en un servidor tenemos un repositorio de subversion. Al mismo tiempo hacemos que la máquina disponga de la estructura de archivos física. Que esto se haría la primera vez con un svn checkout.

Vamos a montar un repositorio en /var/www/svn/repos/ y vamos a volcar toda la estructura de ficheros en /var/www/dominio.com/www por ejemplo.

De esta manera nuestra máquina que nos hace de repositorio también nos va a hacer de servidor web con apache y el proyecto que estamos versionando. Esto es útil para servidores de desarrollo y/o pre-producción

Lo primero que hacemos es volcar el repositorio en la carpeta elegida.

cd /var/www/dominio.com/
svn checkout file:///var/www/svn/repos/ www

Ahora bien, cada vez que hagamos un commit desde cualquier ordenador al servidor con el repositorio, se actualizará automáticamente la estructura de archivos del servidor local. Esto se consigue creando un hook o gancho de subversion.

Tenemos que ir al directorio donde hemos montado el repositorio y acceder a la carpeta hooks

/PATH_COMPLETO_A_REPOSITORIO_SVN/hooks

aqui veremos el siguiente archivo

-rw-r--r-- 1 apache apache 2015 mar 14 16:20 post-commit.tmpl

Tendremos que copiarlo a un nuevo archivo llamado post-commint, o simplemente cambiarle el nombre

cp post-commit.tmpl post-commit
-rwxr-xr-x 1 apache apache 2127 mar 14 17:39 post-commit

Dentro de post-commit tendremos que añadir la siguientes lineas

cd /var/www/dominio.com/www
svn up

Lo único que hemos añadido al archivo post-commit hooks es el comando para posicionarnos dentro de repositorio físico de archivos que hemos creado anteriormente y actualizar a la ultima versión que tenga el repositorio de subversion. De esta manera siempre que cualquier desarrollador envié un commit el servidor tendrá todos los archivos actualizados a la última versión.

Los archivos dentro de la carpetas hooks, son archivos que son llamados tras una determina acción que realizamos con subversion. En este caso estamos usando el archivo hook o “gancho” que se llama después de hacer un commit al repositorio de subversion.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *