Trac e Mercurial
Autor: Ramiro B. da Luz | Publicado: 2010-06-23T19:24:00-07:00

Gerenciando projetos com Trac e Mercurial.

Minha dica de hoje é um pouco curta, um pouco por falta de inspiração e um pouco por estar aprendendo ainda sobre o assunto.

Eu uso o Trac[1] há algum tempo para gerenciar as minhas tarefas diárias e me foi pedido para fazer uma apresentação do uso. Porém o sistema de gerenciamento de código que usamos é o SVN[2].

O SVN é útil, mas atualmente outras opções mais modernas e com uma arquitetura diferente da arquitetura cliente servidor tem surgido, com diversas vantagens a arquitetura distribuida vem ganhando adeptos e força em vários projetos, dentre eles o Kernel do Linux, a distribuição Linux Ubuntu e a linguagem Python que usam respectivamente GIT[3], Bazaar[4] e Mercurial[5].

Eu estou começando a aprender a usar o GIT, já dei uma olhada no Bazaar, mas tenho um apreço especial pelo Mercurial.

Então vou deixar no meu post de hoje algumas dicas para quem quer usar Trac e Mercurial para gerenciar o processo de desenvolvimento de software, particular ou da sua equipe.

Para instalar o trac você pode seguir as instruções do site[6]. Se possuir um sistema baseado em debian, use o comando:
# aptitude install trac

Para instalar o mercurial siga as instruções do site[7]. Caso use sistema baseado em debian:
# aptitude install mercurial

Nesse momento já é possível começar a trabalhar com o mercurial, inicializando um repositório com o comando:
$ hg init meu_repositorio

Para habilitar o mercurial no trac é necessário seguir as instruções do wiki do trac[8], ou se você usa sistemas baseados em debian, pode instalar através do repositório com o comando:
# aptitude install trac-mercurial

Em seguida deve habilitar em seu repositório o gancho("hook") para que ao efetuar o commit, ou push, como falei não tenho muita experiência nesse ambiente, ainda não sei exatamente em qual momento o hook será ativado, mas por intuição imagino que seja no commit. As instruções podem ser encontradas no wiki do mercurial[9].

Basicamente é copiar o trachook.py em algum lugar acessível ao Python, ou seja em algum lugar da sua PYTHONPATH e configurar seu repositório, no arquivo .hgrc da seguinte forma:
[hooks]
changegroup.trac = python:trachook.hook

[trac-hook]
root = /caminho/para/trac
url = http://endereco/para/trac

Agora que tudo está pronto, é só criar um projeto no trac e dar as permissões necessárias:
# trac-admin /caminho/do/meu_projeto initenv
# chown -R apache.apache /caminho/do/meu_projeto

O trac pode ser testado com o servidor próprio, tracd, para isso execute o comando:
$ tracd --port 8000 /caminho/do/meu_projeto

Acesse http://localhost:8000/ no seu navegador e verá uma lista de todo ambiente que o trac tem conhecimento.

Feito isso a última coisa que falta, lembrando que esse post não foi testado, pode estar faltando algo mais, seria configurar o apache. Veja os detalhes no próprio site do trac[10].

Bom divertimento. :)

[1] - http://trac.edgewall.org
[2] - http://subversion.tigris.org/
[3] - http://git-scm.com/
[4] - http://bazaar.canonical.com/en/
[5] - http://mercurial.selenic.com/
[6] - http://trac.edgewall.org/wiki/TracInstall
[7] - http://mercurial.selenic.com/wiki/
[8] - http://trac.edgewall.org/wiki/TracMercurial
[9] - http://mercurial.selenic.com/wiki/HgTracHook
[10] - http://trac.edgewall.org/wiki/TracInstall#CreatingaProjectEnvironment