Escolar Documentos
Profissional Documentos
Cultura Documentos
Redmine SVN PDF
Redmine SVN PDF
Segue uma configuração e exemplos de uso sobre essa integração com svn de duas
formas diferentes e também pode ser facilmente adaptado para outros controles de versão.
4. Habilite o Subversion.
5. Na parte abaixo dos SCM você tem algumas configurações, essas configurações são
importantes para habilitarmos o web-service.
6. Obter commits automaticamente deve ser desabilitado, isso deve ser feito por que
será usado o web-service para atualização, mas nada impede que você tenha os 2
habilitados.
7. Ativa WS para gerenciamento do repositório deve ser habilitado para que possamos
acessa-lo.
8. Chave de API gere uma chave é com essa chave que usaremos para autenticar no
momento da atualização. (Mais abaixo será explicado como)
9. Número máximo de revisões exibidas no arquivo de log, essa informação fica a seu
critério.
10. O quadro abaixo desse (Referenciando tarefas nas mensagens de commit) será
comentado depois, por enquanto deixe como está.
11. Clique em salvar.
12. Para testar basta acessar a seguinte url e não deve retornar nenhum erro:
http://{Caminho da Sua Instalação do Redmine}/sys/fetch_changesets?key={Chave de
API}.
13. Existem formas melhores de testar, mas por enquanto essa vai ser a mais fácil.
12. Na imagem acima o quadro vermelho marcado com “1” é a lista de usuários do svn
e no lado direito estão os usuário do remine, como dito o redmine tenta fazer o
vinculo automaticamente e no quadro “2” ele encontrou um usuário e no quadro 3
ele não encontrou.
13. Para alterar basta seleciona no combo o usuário que satisfaça a sua escolha.
14. Clique em atualizar.
Agora vamos realizar a configuração dentro do svn para que a atualização ocorra de maneira
automática, ou seja, sem precisa ficar clicando no link repositório do projeto. Existem 2 formas
são elas :
Os hook’s são eventos disparados quando ocorre alguma ação dentro do repositório
do svn. O que vamos fazer é muito simples, basta que sempre que um evento de post-commit
acontecer dentro do repositório, execute o comando informado na primeira parte desse
tutorial.
1. Entre na pasta onde está o repositório SVN no servidor. (Para cada repositório
você deve fazer o mesmo)
2. Dentro da pasta do seu repositório svn você vai encontrar um pasta chamada
hooks entre nessa pasta. (Dentro dessa pasta tem vários exemplos de arquivos
para ser usado como base)
3. Caso não exista crie um arquivo chamado post-commit.
4. Dentro desse arquivo você coloca o seguinte comando:
curl http://{Caminho da Sua Instalação}/sys/fetch_changesets?key={Chave de API}.
5. Não se esqueça de dar privilégio de permissão de execução a este arquivo.
6. Pronto, basta realizar um commit e você vai verificar as atualizações na Aba
Repositório.
$ cd /home/svn/repositories/Test
$ cd /hooks/
$ vi post-commit
curl http://{Caminho da Sua Instalação}/sys/fetch_changesets?key={Chave de API}
[shift + :]
wq!
chown -R www-data:www-data *
chmod -R 770 *
Usar o cron torna o gerenciamento melhor, porém com um atraso dependendo do tempo que
você colocar para atualizar, eu acredito ser melhor por causa da facilidade de manutenção não
há a necessidade de cada criação de repositório você entrar no mesmo e configurar os hooks
para atualizar.
2. Salve em um local qualquer, no meu caso salvei no home com o nome: update-
redmine.sh
3. Adicione permissão de execução: chmod +x
4. Edite o crontab usando o comando crontab –e
5. O mesmo vai abrir o vim ou qualquer outro editor padrão então você adicone a
seguinte linha, no meu caso a atualização executa de 10 em 10 minutos.
*/10 * * * * /home/update_redmine.sh 1>/home/log_make.log 2>/home/error.log
Caso o mesmo commit faça referência a mais de um ticket você pode adicioná-lo ao
commit através da vírgula (Isso não é recomendado devido à dificuldade de
gerenciamento, mas vou explicar e fica o seu critério usar ou não)
Os parênteses são por minha conta, você pode somente adicionar o texto dentro dos
parênteses.
Depois de atualizado no redmine com base nessa referência seu ticket deve ficar
assim:
No quadro 1, pode-se ver o que e por quem foi realizado o commit e no quadro 2 de
onde foi realizada a atualização. Aqui no meu exemplo é em git e no svn segue o
mesmo principio.
4. Palavra de fechamento, caso o desenvolvedor queira fechar o ticket somente através
do commit, ele pode adicionar ao commit a palavra incluído aqui. Na sua essência não
muda nada em relação à palavra de referência, a diferença principal é que você pode
aplicar um status e esse status pode ou não fechar a tarefa, pode também aplicar
também um % de conclusão, aqui fica a seu critério como você deve ser o processo de
desenvolvimento. No meu caso usei a palavra closes e fixes e portanto o
desenvolvedor pode usa-las da seguinte forma:
O resultado será o mesmo da imagem acima com exceção da atualização do status que
somente é realizada no fechamento.
5. Habilitar registro de horas. Esse é uma das funcionalidades mais legais dessa
integração, eu comecei a usar em pouco tempo e achei muito legal. É possível
adicionar um tempo de trabalho depois da referencia do ticket e o redmine irá
atualizar o tempo de trabalho daquela tarefa usando o tempo colocado na linha do
commit com o tipo configurado em Atividades para registro de horas da seguinte
maneira :
Observe o texto em negrito, quando o redmine atualizar você vai ter as horas gastas
informado na linha do commit. Veja o resultado no redmine.
No ticket :
No relatório :
Pessoal ! Espero ter ajudado e qualquer dúvida pode entrar em contato pela lista de
discussão.
Era isso!!
Fábio Nascimento
fabio.o.nascimento@gmail.com
Referências
http://svnbook.red-bean.com/en/1.0/svn-book.html#svn-ch-5-sect-2.1
http://www.redmine.org/projects/redmine/wiki/HowToInstallRedmineOnUbuntuServ
er
http://www.redmine.org/projects/redmine/wiki