Controle de versão usando Git integrado ao Redmine

Este 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. Mostrarei o básico sobre instalação e uso do DCVS Git e sua integração
com o Redmine.

[ Hits: 17.895 ]

Por: Marcelo Soares Souza em 06/02/2012 | Blog: https://gitlab.com/marcelo-soares-souza


Controle de Versão usando Git integrado ao Redmine



Introdução

Este 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.

Mostrarei 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 estar logado como Root para executar parte deste tutorial.

Instalação

1) Instalando o Git

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ça 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-se 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 tarefa 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 ao "/opt/changeset.sh":

 */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. 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.
   

Páginas do artigo
   1. Controle de Versão usando Git integrado ao Redmine
Outros artigos deste autor

Servidor web nginx com PHP-FPM e memcached

Diaspora* no Debian Wheezy - Rede social livre e distribuída

Mapa da Cultura no Debian 7.0 - Instalação com Nginx usando Phusion Passenger

Instalando gerenciador de projetos Redmine usando o PostgreSQL sobre o nginx

OpenLDAP: Instalando um servidor de diretórios com replicação (SyncRepl)

Leitura recomendada

FreeBSD - Configuração do Net-SNMP

Como configurar a sua placa de TV PixelView PlayTV Pro no Linux

Instalação ou Recuperação do GRUB

Request Tracker 3 - Ticketing system

Instalação e configuração do Apache2 com SSL e MOD_JK no Solaris

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts