| quarta-feira, 11 de março de 2009 por Beneti |

Água mole, pedra dura, tanto bate, até que fura!
Finalmente, consegui fazer a integração do Mantis com o SVN funcionar no Dreamhost. Incrível que pelo putty, tudo funcionava normalmente, mas pelo commit do tortoise, não ia!
A configuração não é difícil, só que tem que prestar atenção. Hoje será bem resumido.
Primeiro é necessário criar um usuário no Mantis e que este tenha privilégios para alterar status da issue. Firmeza. O nome do meu usuário é subzero.
2) Vá até a pasta do mantis e encontre o arquivo config_inc.php
Esse arquivo, atualmente, só tem configurações do mysql. Usuário, senha, host… o lenga lenga de sempre.
Acrescente
$g_source_control_account = 'subzero';
$g_source_control_regexp = '/\b(?:bug|issue)\s*[#]{0,1}(\d+)\b/i';
Note que, onde esta subzero, você deve colocar o usuário que você criou. Note também que a expressão regular, pode ser outra. No meu caso, ele aceita: qualquer coisa + bug ou issue + # + numero + qualquer coisa. Ou seja, eu preciso necessariamente ter a palavra bug ou issue ou plural, # e um numero. Esse número, é o número da issue. Vamos, supor, issue 1234. Eu faria… commit issue #1234 por fred. É isso.
Acrescente também:
$g_source_control_fixed_regexp = '/\bfix(?:ed|es)\s+(?:bug|issue)?\s*[#]{0,1}(\d+)\b/i';
$g_source_control_set_status_to = RESOLVED;
$g_source_control_set_resolution_to = FIXED;
Mas er… o que é isso? Eu já te explico. O RESOLVED, é o status que vai. E o FIXED é a resolução. Certo? Certo.. Quando isso ocorre? Pela expressão regula, ocorre quando eu fizer o commite da seguinte forma: fixed ou fixes bug(s) ou issue(s) # numero, ou seja, fixed issue #1234 por fred. Pronto… o Mantis já muda o status.
Mas é só isso?? Claro que não. Isso é 50%. E os outros 50%?
Esse é o crítico… Você precisa encontrar a pasta hooks, do seu projeto no svn. Dentro dela, vem alguns templates de scripts. Depois você vai atrás para saber o que cada um faz. Vamos mexer no post-commit.tmpl. Crie um novo arquivo nessa pasta, chamado post-commit, sem extensão mesmo.
Coloque o seguinte código:
#!/bin/bash
REPOS=”$1″
REV=”$2″
log=$(svnlook log -r $REV $REPOS)
/usr/local/bin/php -q /home/[usuario]/[mantis]/core/checkin.php <<< “$log”
Salve!
E já era… Você vai ver que coisa linda!
Detalhe: pode começar a xiar o bash. Caso você tenha mandado um arquivo do windows… alguns caracteres estranhos vão junto. Rode o seguinte comando:
sed -i 's/\r$//' post-commit
Agora sim, já era. Só para constar… O Dreamhost deveria ter isso na wiki deles.
Tags: mantir, svn, tortoise
Postado em Dicas
1 Comentário