Ir al contenido principal

Sincronizar repositorio SVN con apache después de cada commit

En el caso de que estés desarrollando una aplicación web utilizando un control de versiones, SVN en este caso, sería de utilidad poder visualizar la última version de la web utilizando como servidor web el mismo servidor en el que tengas el servicio SVN corriendo (en el  caso de que no uses un servicio online, sino un servidor SVN propio). Para lograr esto, debemos configurar un hook en nuestro repositorio SVN y por supuesto tener instalado un servidor LAMP.
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/REPOSITORIO
Ya 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

Entradas populares de este blog

Solucionar "Ha sido imposible conectar al servidor FTP xxxx.xxxx.com:21" en WordPress

Si obtienes un error indicándote "Ha sido imposible conectar al servidor FTP xxxx.xxxx.com:21" o “Ha sido imposible localizar el directorio de [...]“ cuando intentas actualizar o instalar algún plugin, theme o el mismo WordPress -mediante actualización automática- se debe a un problema interno de WordPress, por el cual no es capaz de encontrar el directorio del blog.
A continuación vemos el motivo y la solución al inconveniente:


Causa

Sucede generalmente cuando el directorio de instalación de WordPress se encuentra al menos 2 niveles inferiores al root por FTP. Se obtiene un mensaje de error similar a algunos de los siguientes:

Red inalámbrica segura con RADIUS

Una de las opciones más seguras que permite controlar la autenticación de usuarios se puede realizar mediante la configuración de un servidor Radius. Radius o Remote Authentication Dial-In User Server, es un protocolo de autenticación y autorización para aplicaciones de acceso a la red o movilidad IP. Utiliza los puertos 1812 y 1813 UDP para establecer sus conexiones.

En esta entrada os mostraré como realizar la instalación y configuración de un servidor Radius bajo GNU/Linux llamado freeradius, para autenticar conexiones que provienen de un punto de acceso TP-LINK TL-WA501G.

Instalar PAINT en Ubuntu

KolourPaint es un editor de imágenes libre fácil de entender y usar disponible en entornos GNOME, KDE, Xfce, etc...


Es un excelente sustituto para Paint, para instalarlo ejecutamos en un terminal: