sexta-feira, 18 de fevereiro de 2011

integracao mantis e svn

Ter, 02 de Fevereiro de 2010 15:08

Este 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 #4

ou

- bug #00456

Entã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 #5466

ou

- fixed issue #5466

ou ainda

- fixed bug #5466

a 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.php

Feito 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-commit

Repare 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-commit

And... we're done!

good coding.

--

Helder Garcia



Retirado de : http://www.sounerd.com.br/index.php/section-blog/80-Desenvolvimento/351-integracao-mantis-e-svn.html

Nenhum comentário:

Postar um comentário