Tabla de Contenidos

Ubicación: Inicio > Tecnologías > Subversion > Que son y como se utilizan los hooks

Que son y como se utilizan los Hooks

Introducción

Un Hook o gancho es un programa activado por algún evento del repositorio, como la creación de una nueva revisión o la modificación de una propiedad no versionada. A cada gancho se le da suficiente información para que sepa de qué evento se trata, cuál es su objetivo, y el nombre de usuario de la persona que disparó el evento. Dependiendo de la salida del gancho o de estado de su salida, el programa de enganche puede continuar la acción, pararla, o suspenderla de alguna manera.

Tipos de ganchos

Son 5 los principales ganchos implementados por el repositorio Subversion:

Otro tipo de ganchos (aunque menos utilizados): post-unlock, pre-unlock, post-lock, pre-lock.

Poner en marcha un gancho

Los ganchos se encuentran en el siguiente directorio:

/home/USUARIO/svn/mirepo/hooks

Para que un gancho comience a funcionar, debemos renombrar el nombre del fichero eliminandole su extensión.

Por ejemplo: post-commit.tmpl lo convertimos en post-commit (a secas).

Personalizar nuestro gancho

Para personalizar nuestro gancho, tenemos que editar cualquiera de los que tenemos dentro de la carpeta Hooks. Al final del fichero deberá aparecer una llamada a un script (programa) que será lo que se ejecute una vez que nuestro gancho se haya activado.

En este enlace tenemos un buen número de scripts que nos pueden valer para que se ejecuten con nuestros Hooks. http://subversion.tigris.org/tools_contrib.html#hook_scripts

Dar permisos de ejecución a los ficheros

Puede ser que tanto nuestro fichero Hook como los scripts que se ejecuten dentro de nuestro gancho, no tengan los permisos de ejecución necesarios. Esto lo haremos de la siguiente manera:

chmod +x FICHERO

Probar nuestro gancho

Antes ver si nuestro gancho se ejecuta correctamente, podemos realizar una prueba activandolo nosotros mismos desde la consola. Para ello, vamos al directorio Hooks:

cd /home/USUARIO/svn/mirepo/hooks

Y ejecutamos el gancho (en este caso el post-commit):

env - ./post-commit /home/USUARIO/svn/mirepo