Criação de Repositório no SVN e de Projeto no TRAC

Durante o trabalho de desenvolvimento de aplicações, é preciso mais do que simplesmente codificar. Principalmente quando o desenvolvimento de um programa envolve trabalho em equipe é necessário definir alguma forma do compartilhar o código entre as pessoas que irão desenvolver o projeto e também uma maneira de gerenciar o andamento do trabalho.

Para atender a esses dois problemas existem duas ferramentas que podem trabalhar de forma integrada, elas são o svn (subversion) e o trac.

O SVN é utilizado quando precisamos fazer controle de versão dos projetos que estamos desenvolvendo. Através dele um membro da equipe de desenvolvimento pode disponibilizar, de forma prática, as alterações que fez em sua parte do projeto para os demais membros da equipe, colaborando para que todos tenham acesso a um projeto mais atualizado possível.

O SVN permite também aos seus usuários acesso a versões antigas de um mesmo código, como por exemplo, uma versão mais antiga de uma classe que passou por uma modificação e que no momento não apresenta ao funcionamento desejado.

O TRAC, por sua vez, permite fazer o gerenciamento do projeto. Esse gerenciamento pode ser feito através do acompanhamento nas modificações sofridas pelo código que está no SVN (TRAC e SVN podem trabalhar de forma integrada), através da delegação de tarefas aos membros da equipe de desenvolvimento e do acompanhamento da realização destas tarefas.

Contudo, para usufruirmos do SVN e do TRAC precisamos antes criar projetos. Veremos agora como devemos proceder para criar projetos no SVN e no TRAC.

Lembrando que este material foi desenvolvido utilizando-se o Ubuntu como sistema operacional.

 

1.           Criação de Repositório no SVN

 

Antes de criar um projeto no TRAC é preciso que seja criado um repositório SVN do projeto.    Os repositórios serão criados dentro da pasta /var/lib/svn. A seguir os passos necessários para a criação de um repositório no SVN.

I – Dentro de /var/lib/svn deve ser criada a pasta do repositório:

         ex: sudo mkdir /var/lib/svn/meu_repositorio

II – Em seguida devem ser criadas pastas temporárias que representam a estrutura de pastas do repositório criado. A estrutura básica definida no momento é de que dentro da pasta do repositório existirão outras três pastas, chamadas tags, branches e head, onde a última corresponderá a pasta principal do projeto. A estrutura temporária será criada na pasta /tmp

         ex:      sudo mkdir /tmp/meu_repositorio

                        sudo mkdir /tmp/meu_repositorio/tags

                        sudo mkdir /tmp/meu_repositorio/branches

                        sudo mkdir /tmp/meu_repositorio/head


III – Uma vez criada a estrutura de pastas podemos então criar o nosso repositório no SVN com o seguinte comando.

         ex: sudo svnadmin create /var/lib/svn/meu_repositorio

         OBS: notar que o repositório é criado na mesmo pasta do procedimento I

IV – Agora fazemos a importação da estrutura criada em /tmp, em nosso procedimento II, para o nosso repositório no SVN e em seguida apagamos as pastas que estão em /tmp.

 

  ex: sudo svn import /tmp/meu_repositorio file:///var/lib/svn/meu_repositorio -m "initial import"

    sudo rm -rf /tmp/meu_repositorio

V – Por fim, encerramos a criação do nosso repositório no SVN dando publicidade a ele para que possa ser acessado via apache a partir de outras máquinas. Isso é feito com o seguinte comando:

        
ex: sudo chown -R www-data /var/lib/svn/meu_repositorio

Seguidos esses passos o repositório pode ser visualizado através do endereço:
http://localhost/svn/meu_repositorio

2. Criação de projeto no TRAC

Uma vez já criado o repositório no SVN pode ser dado início a criação do projeto no TRAC. Os projetos do TRAC devem ser criados na pasta /var/lib/trac. Os seguintes passos descrevem o procedimento para a criação de um projeto simples no TRAC.

I – Diferentemente do que ocorre com a criação de um projeto no SVN, no caso dos projetos do TRAC, não devemos criar uma pasta com o nome do projeto no lugar onde vão ficar os projetos gerenciados.

II – O primeiro passo para se criar um projeto no TRAC é digitar o seguinte comando:

ex: sudo trac-admin /var/lib/trac/meu_projeto initenv

III – Depois de digitado esse comando deveremos responder as seguintes perguntas:

         a) A primeira pergunta é a respeito do nome do projeto;

         b) A segunda pergunta é qual a conexão de banco utilizada. Estamos utilizando a conexão default, portanto não precisamos especificar nenhuma conexão, apenas apertar 'Enter' e responder a próxima pergunta;

         c) A terceira pergunta é qual o tipo de controle de versão utilizado. devemos responder svn;

            d) A quarta pergunta é qual o caminho para o nosso repositório, no caso: /var/lib/svn/meu_repositorio

            e) A quinta e última pergunta é qual o direito onde estão os templates que o projeto irá utilizar. Para essa pergunta também devemos dar a resposta default, apenas apertar 'Enter'.

         IV – Ao fim disso, se aparecer a palavra Congratulations quer dizer que o projeto foi criado.

         V – O último passo para a criação de um projeto simples é dar publicidade ao mesmo, movendo-o para o diretório do apache2. Isso é feito através do comando

            ex: sudo chown -R www-data /var/lib/trac/meu_projeto

         Seguidos esses passo o projeto já pode ser visualizado através do endereço: http://localhost

 

3. Instalando o plugin Web Admin do TRAC no projeto

A primeira coisa que deve ser feita para a instalação do plugin WebAdmin em um projeto do TRAC é copiar o arquivo TracWebAdmin-0.1.2dev_r4429-py2.5.egg localizado na pasta plugin de algum projeto do TRAC para a pasta plugin do projeto em que você deseje que seja instalado o mesmo. Isso pode ser feito através do seguinte comando:

         ex: sudo cp /var/lib/trac/algum_projeto/plugins/TracWebAdmin-0.1.2dev_r4429-py2.5.egg /var/lib/trac/meu_projeto/plugins/

Por fim devem ser adicionadas as seguintes linhas ao arquivo de configuração do projeto, trac.ini, localizado na pasta /var/lib/trac/meu_projeto/conf.

         [components]

            webadmin.* = enabled

Uma vez cumpridos esses passos o plugin Web Admin já estará instalado.

Para que um usuário possa ter poderes de administração através deste plugin ele precisa ter a permissão TRAC_ADMIN.


4. Adicionando permissões para usuários em um projeto no TRAC

Vamos entender como podemos visualizar a lista de permissões de um projeto TRAC através de um comando de linha de texto, bem como como adicionar permissões a um determinado usuário no projeto.

O comando para visualizar a lista de permissões de um projeto TRAC é o seguinte:

        
ex:  sudo trac-admin /var/lib/trac/meu_projeto permission list

Já o comando para adicionar permissão para um usuário em um projeto TRAC é o seguinte:

        
ex:  sudo trac-admin /var/lib/trac/meu_projeto permission add usuario PERMISSÃO

O trabalho de definir permissões pode ser feito através do plugin Web Admin na página do projeto TRAC, desde que o usuário tenha a permissão TRAC_ADMIN

5. Criando um usuário para o TRAC e o SVN.

No momento da instalação foi convencionado que o TRAC e o SVN compartilhariam o mesmo arquivo para o seus usuários e respectivas senhas. No nosso caso em particular o arquivo é /var/lib/svn/dav_svn.passwd.

O processo de autenticação, tanto para SVN quanto para o TRAC é feito através do apache2, dessa forma, para efetuarmos o cadastro de um usuário simples devemos utilizar o seguinte comando do apache2:

          
ex: sudo htpasswd -s /var/lib/svn/dav_svn.passwd usuário

Quando se está criando o arquivo de senhas e respectivamente criando o seu primeiro usuário devemos utilizar o seguinte comando.

        
ex: sudo htpasswd -c /diretorioDoArquivo/arquivoDeSenhas primeiroUsuario

6. Modificando o repositório do trac

Caso seja modificado o repositório svn para onde um projeto do trac esta apontando e necessário que seja dado o seguinte comando:

        
ex: sudo trac-admin /var/lib/trac/meu_projeto resync

7. Referências

http://trac.edgewall.org/wiki/TracOnUbuntu
http://www.dicas-l.com.br/dicas-l/20050924.php
http://trac.edgewall.org/