integracao mantis e svn
Autor: Lorena Cherulli | Publicado: 2011-02-18T07:44:00-08:00

Ter, 02 de Fevereiro de 2010 15:08Este  artigo trata de como integrar o Mantis, um bug tracker popular, com o  SVN. O objetivo é automatizar a atualização de issues no mantis a partir  de commits de alterações pelo SVN.Basicamente,  deseja-se eliminar a atividade adicional de logar no mantis para marcar  uma issue como "RESOLVED" após a conclusão da etapa de codificação.Assume-se  que você já tem o Mantis e o SVN instalados e funcionando adequadamente  de modo isolado. Caso ainda não tenha, procure por tutoriais na net  sobre como instalá-los.Outra  premissa é que você está trabalhando em um servidor Linux. Em ambientes  (ergh) Windows o procedimento pode ser diferente, não sei e não me  pergunte... :)Antes de mais nada, devo citar os devidos créditos. Quase tudo que fiz aqui veio do tutorial encontrado em http://www.grafxsoftware.com/option.php/182. Apenas fiz algumas atualizações, como por exemplo arquivos que mudaram de lugar, etc.Bom,  o primeiro passo é criar um usuário no Mantis para ser usado pelo  script. Você pode criar um usuário chamado "svn", por exemplo. É  importante que ele tenha permissão nos seus projetos de alterar o status  de issues. Coloque-o como "developer" que tudo vai ficar bem.A  regra fundamental é a exigência de um pequeno padrão de texto nos  comentários dos commits no SVN. Sempre que você (ou o programador)  referenciar a issue no texto de comentário, esse texto será adicionado  como uma nota no registro da issue no Mantis. Para isso, basta que o  texto contenha um padrão do tipo:- issue #4ou- bug #00456Então,  se o comentário for algo do tipo: "Corrigido caminhos relativos.  Alteração referente a issue #5647", esse texto será adicionado como nota  no registro da issue número 5647 no Mantis.E, se o texto contenha um padrão do tipo:- fixes issue #5466ou- fixed issue #5466ou ainda- fixed bug #5466a  issue terá seu status alterado, além da incorporação do texto como  nota. O status irá para RESOLVED e a resolution para FIXED. É claro que  você poderá mudar no código o status final que deseja, ou até mesmo o  padrão de texto a ser procurado, colocando em Português, por exemplo.Vamos lá. Vá para o diretório onde você tem o Mantis instalado. A partir de agora vou me referir a ele como MANTIS_PATH, pois cada um tem o seu e não mostra pra ninguém (sim, que nem aquilo).Neste diretório, abra, com seu vi preferido, o arquivo de configuração do Mantis, chamadoconfig_inc.php e  inclua o código abaixo após as linhas de código já existentes.  Obviamente antes do delimitador de código final, o famoso "?>".Clique no link abaixo para ver o código.config_inc.phpFeito isso, você já pode testar o funcionamento do casamento de padrão.Embaixo de MANTIS_PATH, tem um subdiretório chamado scripts. Nele vamos encontrar um... script!!!... que podemos usar para testar essa parte da integração.Ah, mas antes disso, é claro que você tem que criar (reportar) uma issue de teste no Mantis. Memorize seu número.Criada a issue, no shell, dentro do subdir scripts, execute o comando abaixo, trocando o número 4 pelo número da sua issue de teste./usr/bin/php checkin.php <<< "hlbog fixed issue #4"Funcionou?Excelente.Agora a última parte. Aqui precisamos fazer com que uma operação de commit no SVN chame automagicamente o script de checkin que acabamos de executar manualmente.Pra isso temos os gloriosos hooks!  Fácil. Vá para o diretório do seu repositório SVN, no servidor mesmo,  não é na sua cópia de trabalho local. Neste local tem um subdiretório  chamado hooks, e lá vários arquivos com extensão tmpl, que são scripts de exemplo que vem na instalação do SVN. Mas você irá criar seu próprio arquivos chamado post-commit. Isso mesmo, sem extensão nenhuma.O conteúdo desse arquivo será:Clique no link abaixo para ver o código.post-commitRepare que você deve colocar o caminho para o SEU Mantis no código.Altere a permissão do arquivo para execução:chmod 550 post-commitAnd... we're done!good coding.--Helder GarciaRetirado de : http://www.sounerd.com.br/index.php/section-blog/80-Desenvolvimento/351-integracao-mantis-e-svn.html