Post on 09-Jul-2015
description
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Controle de Versão e Monitoramento de Projetos
com SVN + WebSVN + StatSVN
Felipe Buarque de Queirozfelipe.buarque@gmail.com
Fundação de Amparo a Pesquisa do Estado de Alagoas - FAPEALUnidade Gestora de Tecnologia da Informação - UGTI
Novembro de 2009
1 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Introdução
Roteiro I
1 IntroduçãoPra que serve controle de versão?Como funciona?Controle de versão centralizado x distribuído
2 Subversion
3 Estudo de caso - UGTI/FAPEALCenárioSVN + WebSVN“Integração” com o StatSVN
4 Conclusões
2 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Introdução
Introdução
Alguém já sobrescreveu o código de outra pessoa por acidentee acabou perdendo as alterações?
Tem dificuldades em saber quais as alterações efetuadas emum programa, quando foram feitas e quem fez?
Tem dificuldade em recuperar o código de uma versão anteriorque está em produção?
Tem problemas em manter variações do sistema ao mesmotempo?
if resposta == ‘Sim’ :
Você precisa de um software para controle de versão!
3 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Introdução
Introdução
Alguém já sobrescreveu o código de outra pessoa por acidentee acabou perdendo as alterações?
Tem dificuldades em saber quais as alterações efetuadas emum programa, quando foram feitas e quem fez?
Tem dificuldade em recuperar o código de uma versão anteriorque está em produção?
Tem problemas em manter variações do sistema ao mesmotempo?
if resposta == ‘Sim’ :
Você precisa de um software para controle de versão!
3 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Introdução
Introdução
Alguém já sobrescreveu o código de outra pessoa por acidentee acabou perdendo as alterações?
Tem dificuldades em saber quais as alterações efetuadas emum programa, quando foram feitas e quem fez?
Tem dificuldade em recuperar o código de uma versão anteriorque está em produção?
Tem problemas em manter variações do sistema ao mesmotempo?
if resposta == ‘Sim’ :
Você precisa de um software para controle de versão!
3 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Introdução
Pra que serve controle de versão?
Pra que serve controle de versão?
Apoia o desenvolvimento de diversas maneiras:
Histórico - registra toda a evolução do projeto
Colaboração - permite o trabalho em paralelo por parte dosdesenvolvedores
Variações no projeto - diferentes linhas de evolução doprojeto
4 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Introdução
Como funciona?
Como funciona?
5 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Introdução
Como funciona?
Como funciona?
Composto de duas partes: repositório e área/cópia detrabalho
Sicronização realizada através dos comandos de commit eupdate
Cada commit gera uma nova revisão no repositório
6 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Introdução
Controle de versão centralizado x distribuído
Controle de versão centralizado
7 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Introdução
Controle de versão centralizado x distribuído
Controle de versão centralizado
Topologia em estrela
Comunicação entre uma área/cópia de trabalho e outra passaobrigatoriamente pelo repositório central
Controle de revisões feito com um número inteiro sequencial
Exemplo de softwares: CVS, Subversion (SVN)
8 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Introdução
Controle de versão centralizado x distribuído
Controle de versão distribuído
9 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Introdução
Controle de versão centralizado x distribuído
Controle de versão distribuído
Cada desenvolvedor tem seu próprio repositório
A comunicação entre repositórios é feita através dasoperações pull e push
Topologia não definida
Controle de revisões feito com geração de números utilizandohash SHA-1
Exemplo de softwares: Mercurial, Git
10 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Introdução
Controle de versão centralizado x distribuído
Controle de versão distribuído
11 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Subversion
Roteiro I
1 IntroduçãoPra que serve controle de versão?Como funciona?Controle de versão centralizado x distribuído
2 Subversion
3 Estudo de caso - UGTI/FAPEALCenárioSVN + WebSVN“Integração” com o StatSVN
4 Conclusões
12 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Subversion
Subversion - SVN
Lançado em fevereiro de 2004
Sistema de controle de versão Open Source
Substituto do CVS
Construído sobre a APR (Apache Portable Runtime)
Controle de versão centralizado
Múltiplos repositórios
Armazena as informações na forma de árvore de diretórios
Número ilimitado de clientes
Exemplo de softwares clientes: TortoiseSVN, Subeclipse,RapidSVN, eSVN, JSVN
Usa um SO derivado do Debian?
apt-get install svn
13 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Subversion
Subversion - SVN
Lançado em fevereiro de 2004
Sistema de controle de versão Open Source
Substituto do CVS
Construído sobre a APR (Apache Portable Runtime)
Controle de versão centralizado
Múltiplos repositórios
Armazena as informações na forma de árvore de diretórios
Número ilimitado de clientes
Exemplo de softwares clientes: TortoiseSVN, Subeclipse,RapidSVN, eSVN, JSVN
Usa um SO derivado do Debian?
apt-get install svn
13 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Subversion
Subversion - SVN
Lançado em fevereiro de 2004
Sistema de controle de versão Open Source
Substituto do CVS
Construído sobre a APR (Apache Portable Runtime)
Controle de versão centralizado
Múltiplos repositórios
Armazena as informações na forma de árvore de diretórios
Número ilimitado de clientes
Exemplo de softwares clientes: TortoiseSVN, Subeclipse,RapidSVN, eSVN, JSVN
Usa um SO derivado do Debian?
apt-get install svn
13 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Estudo de caso - UGTI/FAPEAL
Roteiro I
1 IntroduçãoPra que serve controle de versão?Como funciona?Controle de versão centralizado x distribuído
2 Subversion
3 Estudo de caso - UGTI/FAPEALCenárioSVN + WebSVN“Integração” com o StatSVN
4 Conclusões
14 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Estudo de caso - UGTI/FAPEAL
Cenário
Cenário
Equipe de desenvolvimento reduzida - 5 pessoas
Equipe de desenvolvimento trabalhando no mesmo local físico,mas em horários distintos
2 ou mais projetos ocorrendo simultaneamente
Adoção de metodologias ágeis no desenvolvimento (Scrum,XP)
Diferentes tecnologias envolvidas
15 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Estudo de caso - UGTI/FAPEAL
SVN + WebSVN
SVN + WebSVN
Visualização do histórico de projetos na web
Acompanhamento dos commit’s efetuados pelosdesenvolvedores
Autenticação para os desenvolvedores e gerentes de projeto
Usa um SO derivado do Debian?
apt-get install websvn
16 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Estudo de caso - UGTI/FAPEAL
SVN + WebSVN
SVN + WebSVN
Visualização do histórico de projetos na web
Acompanhamento dos commit’s efetuados pelosdesenvolvedores
Autenticação para os desenvolvedores e gerentes de projeto
Usa um SO derivado do Debian?
apt-get install websvn
16 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Estudo de caso - UGTI/FAPEAL
SVN + WebSVN
SVN + WebSVN
Visualização do histórico de projetos na web
Acompanhamento dos commit’s efetuados pelosdesenvolvedores
Autenticação para os desenvolvedores e gerentes de projeto
Usa um SO derivado do Debian?
apt-get install websvn
16 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Estudo de caso - UGTI/FAPEAL
SVN + WebSVN
SVN + WebSVN
17 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Estudo de caso - UGTI/FAPEAL
SVN + WebSVN
SVN + WebSVN
18 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Estudo de caso - UGTI/FAPEAL
“Integração” com o StatSVN
StatSVN
Exibe estatísticas detalhadas sobre os repositórios no SVNLinhas de código por desenvolvedorAtividades dos desenvolvedores por período de tempoÁrvore do repositórioTamanho médio dos arquivosPrincipais tags utilizadas nos repositóriosIntegração com o Twitter (:D)...
Usa um SO derivado do Debian?
apt-get install statsvn
19 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Estudo de caso - UGTI/FAPEAL
“Integração” com o StatSVN
StatSVN
Exibe estatísticas detalhadas sobre os repositórios no SVNLinhas de código por desenvolvedorAtividades dos desenvolvedores por período de tempoÁrvore do repositórioTamanho médio dos arquivosPrincipais tags utilizadas nos repositóriosIntegração com o Twitter (:D)...
Usa um SO derivado do Debian?
apt-get install statsvn
19 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Estudo de caso - UGTI/FAPEAL
“Integração” com o StatSVN
StatSVN
Exibe estatísticas detalhadas sobre os repositórios no SVNLinhas de código por desenvolvedorAtividades dos desenvolvedores por período de tempoÁrvore do repositórioTamanho médio dos arquivosPrincipais tags utilizadas nos repositóriosIntegração com o Twitter (:D)...
Usa um SO derivado do Debian?
apt-get install statsvn
19 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Estudo de caso - UGTI/FAPEAL
“Integração” com o StatSVN
StatSVN
20 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Estudo de caso - UGTI/FAPEAL
“Integração” com o StatSVN
StatSVN
21 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Estudo de caso - UGTI/FAPEAL
“Integração” com o StatSVN
SVN + WebSVN + StatSVN
Criação de um script para integração:
Varrer o diretório dos repositórios existentes
Realizar checkout do projeto (o StatSVN necessita do códigofonte)
Gerar o arquivo de log do projeto (o StatSVN gera os gráficosa partir deste arquivo)
Caso não exista, criar o diretório do StatSVN no WebSVN
Rodar o script do StatSVN
Dar as devidas permissões no diretório
Automatizar o script (cron)
Colocar um link no template do WebSVN apontando para odiretório do StatSVN no projeto
22 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Estudo de caso - UGTI/FAPEAL
“Integração” com o StatSVN
SVN + WebSVN + StatSVN
Criação de um script para integração:
Varrer o diretório dos repositórios existentes
Realizar checkout do projeto (o StatSVN necessita do códigofonte)
Gerar o arquivo de log do projeto (o StatSVN gera os gráficosa partir deste arquivo)
Caso não exista, criar o diretório do StatSVN no WebSVN
Rodar o script do StatSVN
Dar as devidas permissões no diretório
Automatizar o script (cron)
Colocar um link no template do WebSVN apontando para odiretório do StatSVN no projeto
22 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Estudo de caso - UGTI/FAPEAL
“Integração” com o StatSVN
SVN + WebSVN + StatSVN
Criação de um script para integração:
Varrer o diretório dos repositórios existentes
Realizar checkout do projeto (o StatSVN necessita do códigofonte)
Gerar o arquivo de log do projeto (o StatSVN gera os gráficosa partir deste arquivo)
Caso não exista, criar o diretório do StatSVN no WebSVN
Rodar o script do StatSVN
Dar as devidas permissões no diretório
Automatizar o script (cron)
Colocar um link no template do WebSVN apontando para odiretório do StatSVN no projeto
22 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Estudo de caso - UGTI/FAPEAL
“Integração” com o StatSVN
SVN + WebSVN + StatSVN
Criação de um script para integração:
Varrer o diretório dos repositórios existentes
Realizar checkout do projeto (o StatSVN necessita do códigofonte)
Gerar o arquivo de log do projeto (o StatSVN gera os gráficosa partir deste arquivo)
Caso não exista, criar o diretório do StatSVN no WebSVN
Rodar o script do StatSVN
Dar as devidas permissões no diretório
Automatizar o script (cron)
Colocar um link no template do WebSVN apontando para odiretório do StatSVN no projeto
22 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Estudo de caso - UGTI/FAPEAL
“Integração” com o StatSVN
SVN + WebSVN + StatSVN
Criação de um script para integração:
Varrer o diretório dos repositórios existentes
Realizar checkout do projeto (o StatSVN necessita do códigofonte)
Gerar o arquivo de log do projeto (o StatSVN gera os gráficosa partir deste arquivo)
Caso não exista, criar o diretório do StatSVN no WebSVN
Rodar o script do StatSVN
Dar as devidas permissões no diretório
Automatizar o script (cron)
Colocar um link no template do WebSVN apontando para odiretório do StatSVN no projeto
22 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Estudo de caso - UGTI/FAPEAL
“Integração” com o StatSVN
SVN + WebSVN + StatSVN
Criação de um script para integração:
Varrer o diretório dos repositórios existentes
Realizar checkout do projeto (o StatSVN necessita do códigofonte)
Gerar o arquivo de log do projeto (o StatSVN gera os gráficosa partir deste arquivo)
Caso não exista, criar o diretório do StatSVN no WebSVN
Rodar o script do StatSVN
Dar as devidas permissões no diretório
Automatizar o script (cron)
Colocar um link no template do WebSVN apontando para odiretório do StatSVN no projeto
22 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Estudo de caso - UGTI/FAPEAL
“Integração” com o StatSVN
SVN + WebSVN + StatSVN
Criação de um script para integração:
Varrer o diretório dos repositórios existentes
Realizar checkout do projeto (o StatSVN necessita do códigofonte)
Gerar o arquivo de log do projeto (o StatSVN gera os gráficosa partir deste arquivo)
Caso não exista, criar o diretório do StatSVN no WebSVN
Rodar o script do StatSVN
Dar as devidas permissões no diretório
Automatizar o script (cron)
Colocar um link no template do WebSVN apontando para odiretório do StatSVN no projeto
22 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Estudo de caso - UGTI/FAPEAL
“Integração” com o StatSVN
SVN + WebSVN + StatSVN
Criação de um script para integração:
Varrer o diretório dos repositórios existentes
Realizar checkout do projeto (o StatSVN necessita do códigofonte)
Gerar o arquivo de log do projeto (o StatSVN gera os gráficosa partir deste arquivo)
Caso não exista, criar o diretório do StatSVN no WebSVN
Rodar o script do StatSVN
Dar as devidas permissões no diretório
Automatizar o script (cron)
Colocar um link no template do WebSVN apontando para odiretório do StatSVN no projeto
22 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Conclusões
Roteiro I
1 IntroduçãoPra que serve controle de versão?Como funciona?Controle de versão centralizado x distribuído
2 Subversion
3 Estudo de caso - UGTI/FAPEALCenárioSVN + WebSVN“Integração” com o StatSVN
4 Conclusões
23 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Conclusões
Conclusões
Controle de versão resolve diversos problemas nodesenvolvimento de software
Não se restringe a programadores
Agilidade no desenvolvimento
Faz parte das exigências para melhorias do processo dedesenvolvimento (CMMi, MPS-Br, SPICE)
Ambiente para monitoramento por parte de gestores egerentes de projeto
24 / 25
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Referências
Referências I
[1] Bertheymans. Setting up subversion and websvn on debian.Web, September 2006.
[2] Collins-Sussman, B., Fitzpatrick, B. W., and
Pilato, C. M. Version Control with Subversion. O’ReillyMedia, 2007.
[3] de Souza, D. Subversion - controle de versão dedocumentos. Web, August 2007.
[4] Dias, A. F. Conceitos básicos de controle de versão desoftware — centralizado e distribuído. Web, June 2009.
[5] StatSVN. Statsvn’s wiki, 2009.
25 / 25