quinta-feira, 19 de agosto de 2010

Integrando Bug Tracking com SVN

Uma pergunta que recebo com uma certa frequência é a de como integrar um sistema de bug tracking como Mantis, Trac ou até mesmo um outro sistema ao svn.

Tanto o Mantis como Trac já possuem uma certa integração com o svn permitindo que você possa navegar pelo  repositório por ele, comparar revisões e etc, mas a questão é "Como fazer com que a cada commit o usuário do svn possa informar a qual solicitação (ticket) aquela correção esta vinculada?".

Vejo durante consultorias que o pessoal simplesmente coloca a informação no log de cada commit da seguinte forma: "Correções do ticket/solicitação: 1533". Essa informação pode ser utilizada posteriormente para gerar um arquivo leia-me com todas as correções através de um script de build ou até mesmo por um programa auxiliar.

Esse método de personalização embora funcione não é a mais recomendada de se trabalhar pois se o usuário digitar uma palavra errada antes do número da solicitação o script de build do log pode não funcionar adequadamente.

Uma forma de se padronizar isso é utilizar o tortoise svn para adicionar algumas propriedades para permitir adicionarmos nosso texto padronizado junto ao número do ticket relacionado a correção.

Faça um checkout da linha principal de desenvolvimento do seu projeto (trunk), clique com o botão direito na pasta onde foi realizado o checkout e vá em TortoiseSVN->Properties.

Feito isto clique em New... e configure as propriedades:

bugtraq:label = O texto que você deseja que apareça na tela de commit solicitando o que o usuário deverá introduzir no como identificador da correção. Ex.: Ticket:

bugtraq:message = A mensagem que será colocada automaticamente no log do svn. Aqui deveremos configurar com o padrão que nosso script de build entende, sendo que podemos utilizar o macro %BUGID% que será substituído pelo valor informado pelo usuário. Ex.: Ticket: %BUGID%

bugtraq:number = Indica se o campo para o usuário introduzir o id do ticket aceitara apenas números. Ex.: True = apenas números, False = números e letras.

bugtraq:url = Url de sua ferramenta de bug tracking, aqui você poderá especificar a url da solicitação vinculada a correção atual, esta url será exibida no log de suas revisões, também aceita o macro %BUGID%. Ex.: http://bugtracking.meudominio.com.br/tickets.aspx?id=%BUGID%

bugtraq:warnifnoissue = Indica se deverá mostrar uma caixa de dialogo avisando do não preenchimento do campo do ticket. Ex.: True habilita notificação, False desabilita notificação.

Após configurar faça um commit para que as propriedades sejam salvas no seu repositório e para que todos os usuários do svn comecem a ver o novo campo de solicitação do id do seu ticket ao realizar os commits.

Teste fazendo um commit e veja que será solicitado o id do ticket.

Mais informações sobre as propriedades do svn/tortoise pode ser encontrada aqui.

Um abraço,

Diego Garcia

Um comentário: