Feb 26

Integrar Subversion y Mantis

Tag: Herramientas, InformáticaEmilio González Montaña @ 15:09
1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, media: 5 sobre 5)

Partiendo de una instalación correcta de Subversion y de Mantis, este post te permitirá enlazar ambos, para que al hacer un commit en SVN este resuelva automáticamente una incidencia del Mantis.

Es decir, si una vez abierta una incidencia en Mantis, hacemos un commit en Subversion del estilo a:

subversionmantis01.png

En Mantis conseguiremos resolver la incidencia:

subversionmantis02.png

Y si vamos hacia abajo veremos que se ha agregado la siguiente nota:

subversionmantis03.png

El post está dividido en dos partes: primero haremos las modificaciones necesarias en el Mantis, y luego haremos lo propio en el Subversion.

Modificaciones en Mantis

Lo primero es crear un usuario llamado svn en el Mantis para que Subversion lo use al hacer commits, dándole capacidades de administrador, de este modo nos ahorraremos darle de alta en cada proyecto.

Ahora editamos el fichero de configuración de Mantis (config_inc.php en la raíz de la instalación del Mantis), añadiendo las siguientes opciones:

$g_source_control_account = 'svn';
$g_source_control_regexp = '/\b(?:bug|issue|incidencia|fallo|error|problema)\s*[#]{0,1}(\d+)\b/i’;
$g_source_control_fixed_regexp = ‘/\b(?:fixed|fixes|arreglado|arreglada|corregido|corregida)\s+(?:bug|issue|incidencia|fallo|error|problema)?\s*[#]{0,1}(\d+)\b/i’;
$g_source_control_set_status_to = RESOLVED;
$g_source_control_set_resolution_to = FIXED;

El significado de los campos es el siguiente:

  • g_source_control_account: Usuario de Mantis que creamos anteriormente.
  • g_source_control_regexp: Expresión regular para parsear los comentarios de Subversión y detectar que queremos añadir una nota a una incidencia.
  • g_source_control_fixed_regexp: Expresión regular para parsear los comentarios de Subversión y detectar que queremos resolver una incidencia.
  • g_source_control_set_status_to: Estado al que pasarán las incidencias asociadas a un commit (puedes ponerlo a CLOSED si lo prefieres).
  • g_source_control_set_resolution_to: Estado de resolución al que pasarán las incidencias asociadas a un commit.

Modificaciones en Subversion

Necesitaremos crear (o modificar) el gancho de Subversion hooks/post-commit para que cada vez que se produzca un cambio se avise al Mantis de ello:

#!/bin/bash
REPOS="$1"
REV="$2"
auth=$(svnlook author -r $REV $REPOS)
dt=$(svnlook date -r $REV $REPOS)
changed=$(svnlook changed -r $REV $REPOS)
log=$(svnlook log -r $REV $REPOS)
n=$'\n'
textLog=$'<b>Log del cambio:</b>'
textChanged=$'<b>Ficheros afectados:</b>'
/usr/bin/php -q /home/www-data/mantis/core/checkin.php <<< "Cambio [<b>${REV}</b>] por <b>$auth</b>, $dt$n$n$textLog$n$log$n$n$textChanged$n$changed”

En la línea final se hace la llamada al script de Mantis (cambia la ruta /home/www-data/mantis/core/checkin.php a la ruta de instalación de tu Mantis) que recogerá los valores del commit de Subversion. Puedes cambiar dicha línea para que se acople a tus necesidades. Como ejemplo, verás algo similar a esto en tu Mantis:

Cambio [313] por emilio, 2008-02-26 12:20:01 +0100 (Tue, 26 Feb 2008)

Log del cambio:
Corregida incidencia 0000001
esto
es un comentario
multilinea

Ficheros afectados:
U Software/borrar.txt

Damos permisos al fichero (hay que asegurarse que el usuario con que se ejecuta Subversion sea propietario también, en mi instalación el usuario es el servidor web: www-data, normalmente la carpeta donde se aloja el fichero ya tendrá los permisos apropiados, sólo asegúrate de no crear dicho fichero con la cuenta root sin cambiar luego el propietario):

chmod 744 /home/svn/hooks/post-commit
chown www-data:www-data /home/svn/hooks/post-commit

Prueba

Ahora sólo te queda probarlo, para ello sólo tienes que crear una incidencia de prueba en Mantis, y luego hacer un commit de prueba en el Subersion, si en Mantis se te actualiza el estado de la incidencia con la información del comentario en Subversion, es que todo ha ido bien.

Si tienes algún problema, por favor, revisa todos los pasos dados, que seguro que te has saltado algo, sino es así, pregunta.


Posts relacionados: EHT Mantis (plug... (0)
Posts en mismas categorías: C++ en Windows (0), Cómo analizar t... (20), EHT Mantis (plug... (0), SSH sin password (0)
EHT Related v0.2.5 by Emilio González Montaña

RSS feed | Trackback URI

1 comentario »

Teclarios » Blog Archive » Integración Identicon Icon
     Teclarios » Blog Archive » Integración
2008-06-23 15:09:48 Europe (147.96.81.156)

[...] entre Java y C++. Tenemos integración contínua y la económica. Tenemos la integración entre Subversion y Mantis. Tenemos integración de paneles solares en ventanas, de muebles viejos en decoración moderna, e [...]

 
Nombre (requerido)
E-mail (requerido - nunca mostrado públicamente)
URI
Su comentario (menor tamaño | mayor tamaño)
NOTA:Todo comentario repetido, que no aporte nada, o que pregunte cosas ya contestadas puede ser borrado sin previo aviso!