Ir para o conteúdo
ou

Software livre Brasil

 Voltar a Blog do Marc...
Tela cheia

Tutorial Controle de Versão usando Git integrado ao Redmine

27 de Janeiro de 2012, 0:00 , por Software Livre Brasil - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 579 vezes

Logo GitEste tutorial mostrará como trabalhar, de forma integrada, com o sistema de controle de versão distribuído Git e a ferramenta de gestão de projetos Redmine. A instalação do Redmine foi vista no Tutorial Instalando o Gerenciador de Projetos Redmine usando o PostgreSQL sobre o nginx (http://marcelo.juntadados.org/node/view/tutorial-instalando-o-gerenciador-de-projetos-redmine-usando-o-postgresql--sobre-o-nginx). Este tutorial irá mostrar o básico de instalação e uso do DCVS Git e sua integração com o Redmine. Este tutorial é baseado no Debian Squeeze (6.0.3) e você precisa esta logado como root para executar parte deste tutorial.

1) Instalando o Git

Logo Redmine Edite o arquivo /etc/apt/sources.list
 nano /etc/apt/sources.list

 Adicione ao arquivo
 deb http://ftp.br.debian.org/debian squeeze main contrib
 deb-src http://ftp.br.debian.org/debian squeeze main contrib


 Atualize a listagem de pacotes local
 apt-get update

 Instale o Git
 apt-get install git git-core

1.1) Iniciando um repositório no Git (Exemplo Básico)

 Crie um diretório /root/tutorial
 mkdir /root/tutorial

 Inicie o repositório Git
 git init /root/tutorial

 Uma mensagem de sucesso deve aparecer
 Initialized empty Git repository in /root/tutorial/.git/
 
 Entre no diretório /root/tutorial
 cd /root/tutorial

 Crie um arquivo de texto (Digite qualquer coisa e saia salvando)
 nano /root/tutorial/arquivo.txt

 Adicione o arquivo ao repositório
 git add /root/tutorial/arquivo.txt

 Faço o Commit Local (Escreva uma mensagem sobre o que esta sendo commitado)
 git commit -a

 Visualize Log do Repositório
 git log

1.2) Criando um repositório Bare (Público)

 Utilizamos um repositório Bare como meio de centralizar um determinado repositório Git, este não é utilizado para trabalhar e sim um repositório de troca.

 Crie um diretório para colocarmos o repositório Bare
 mkdir /srv/git

 Clone o repositório exemplo no formato Bare
 git clone --bare /root/tutorial /srv/git/tutorial.git

 Listando o repositório tutorial.git (ls /srv/git/tutorial.git/) teremos algo como
 branches  config  description  HEAD  hooks  info  objects  packed-refs    refs

2) Integrando Repositório Git ao Redmine

 Logue no Redmine
 Selecione a Opção 'Administração' (Canto Superior Esquerdo) -> 'Configurações' -> 'Repositórios'

 Caso não esteja marcado selecione na caixa 'SCM habilitados' a opção Git.

Na Caixa 'Referenciando tarefas nas mensagens de commit', defina o comportamento para as 'Palavras de fechamento' (fixes, closes) para que a 'Situação alterada' seja 'Fechada' e '% Terminado' 100%. Isto permitirá que quando enviamos um commit para o Git este possa fechar uma determinada tarefas que seja referenciada através do comentário com as palavras fixes ou closes. Veremos um exemplo mais para frente.

2.1) Agendando a verificação de mudanças em repositórios

 Precisamos agendar uma tarefa para que o Redmine possa verificar se houve mudanças commitadas aos repositórios integrados.

 Crie um Script Bash /opt/changeset.sh
 nano /opt/changeset.sh
 
 Adicione /opt/changeset.sh
 #!/bin/bash
 cd /opt/redmine-1.3.0 && /usr/bin/ruby1.8 script/runner "Repository.fetch_changesets" -e production


 Mude a permissão e modo de acesso
 chown www-data.www-data /opt/changeset.sh
 chmod a+x /opt/changeset.sh

 Agenda este script para ser executado a cada 1 minuto no crontab
 nano /etc/cron.d/redmine

 Modifique as permissões do /etc/cron.d/redmine
 chmod a-wx /etc/cron.d/redmine

 Acrescente ao cron
 */1 * * * * www-data /opt/changeset.sh 2> /dev/null
 
2.2) Crie um Projeto no Redmine

 Selecione a Opção 'Administração' (Canto Superior Esquerdo) -> 'Projetos' -> 'Novo Projeto' (Canto Superior Direito)

 Defina o Nome do Projeto e o Identificador (deve ter entre 1 e 100 caracteres. Letras minúsculas (a-z), números e hífens permitidos). Crie o Projeto.

 Nas 'Configurações' do Projeto criado selecione 'Repositório'.

 Escolha o Git como 'Controle de versão'

 Em 'Caminho para o repositório' coloque o caminho até o repositório Bare que criamos no passo anterior
 /srv/git/tutorial.git

 Escolha a 'Codificação do caminho' como UTF-8 e marque a opção 'Relatar última alteração para arquivos e diretórios'

 Selecione a opção 'Repositório' nas opções do Projeto (http://redmine.localhost/projects/tutorial/repository). Você deve ver a listagem de commits realizadas.

3) Testando a Integração

 Crie uma 'Nova Tarefa' no Projeto. Grave o número da tarefa criada (Issue).

 Faça o Clone do repositório Bare criado
 git clone /srv/git/tutorial.git /root/testando

 Entre no diretório do repositório clonado
 cd /root/testando

 Crie um arquivo em branco
 touch /root/testando/teste.txt

 Adicione ao repositório Git
 git add /root/testando/teste.txt

 Faça o commit adicionando a palavra de controle 'closes' seguida de # e o número do Ticket criado.

 Exemplo de mensagem no commit
 git commit -m 'Testando Fechamento de Ticket 4 - closes #4'

 Faça o push (envio) das mudanças ao repositório Bare
 git push -f

Após um minuto o Redmine deve atualizar a lista de tarefas em relação aos commits no Git, caso não ocorra clique na opção 'Repositório' para recarregar os commits. Visite a lista de 'Tarefas' do Projeto no Redmine, a tarefa aberta deve ter sido fechada e o commit deve esta associado ao Ticket.


Tags deste artigo: git software livre desenvolvimento tutorial redmine

0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.