====== Objetivo ====== O objetivo deste tutorial é apresentar como configurar o //Mantis// e o //Subversion// de maneira que seja possível adicionar uma anotação ou mesmo marcar um caso como resolvido de acordo com o texto digitado no momento do //commit// em um código.\\ Este tutorial parte do princípio que o //Mantis// e o //Subversion// já estejam instalados e funcionando normalmente de forma isolada, e se refere apenas aos passos necessários para realizar a integração entre as duas ferramentas.\\ ====== Criando usuário no Mantis ====== Para que a integração funcione é necessário criar um usuário que será utilizado pelo Subversion para alterar o status e adicionar as anotações aos casos do //Mantis//.\\ Esse usuário deverá ter privilégios para alterar casos. Normalmente basta que ele possua privilégios de "Desenvolvedor". ====== Alterando o arquivo de configuração do Mantis ====== No diretório de instalação do //Mantis// edite o arquivo //config_inc.php// acrescentando o seguinte código, mantendo o conteúdo original do arquivo: ====== Criando arquivo de gancho do Subversion ====== No //Subversion// existe a possibilidade de criar arquivos de gancho, que contêm rotinas a serem executadas após algum evento ocorrido no projeto.\\ Para a integração com o //Mantis// iremos criar um arquivo de gancho a ser executado no evento //post-commit//, que é executado depois que a transação é submetida e uma nova revisão é criada.\\ Para criar um novo arquivo, no diretório de seu repositório acesse o diretório //hooks//. Dentro dele, crie um novo arquivo chamado //post-commit//, sem extensão alguma. \\ Preencha o arquivo da seguinte maneira: #!/bin/bash REPOS="$1" REV="$2" autor=$(svnlook author -r $REV $REPOS) # autor do commit data=$(svnlook date -r $REV $REPOS) # data do commit arquivos_alterados=$(svnlook changed -r $REV $REPOS) # arquivos alterados log=$(svnlook log -r $REV $REPOS) # mensagem do commit n=$'n' # quebra de linha /usr/bin/php -q { DIRETORIO DE INSTALAÇÂO DO MANTIS }/scripts/checkin.php <<< "$autor$n$log$n$arquivos_alterados" exit 0 ====== Na prática ====== Ao realizar um commit, caso o comentário possua as seguintes palavras //caso #NumeroDoCaso//, o conteúdo do comentário será adicionado como anotação no caso referenciado, contendo a seguinte estrutura: autor do commit comentário do commit arquivos alterados no commit Caso o comentário do commit possua as seguintes palavras //resolvido caso #NumeroDoCaso//, além de ser adicionada uma anotação, o caso será marcado como resolvido no //Mantis//.