Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

40
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 Queiroz [email protected] Fundação de Amparo a Pesquisa do Estado de Alagoas - FAPEAL Unidade Gestora de Tecnologia da Informação - UGTI Novembro de 2009 1 / 25

description

Palestra realizada no II Congresso Acadêmico do CESMAC - Maceió/AL

Transcript of Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

Page 1: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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 [email protected]

Fundação de Amparo a Pesquisa do Estado de Alagoas - FAPEALUnidade Gestora de Tecnologia da Informação - UGTI

Novembro de 2009

1 / 25

Page 2: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 3: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 4: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 5: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 6: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 7: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

Introdução

Como funciona?

Como funciona?

5 / 25

Page 8: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 9: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 10: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 11: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 12: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 13: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 14: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 15: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 16: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 17: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 18: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 19: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 20: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 21: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 22: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 23: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

Estudo de caso - UGTI/FAPEAL

SVN + WebSVN

SVN + WebSVN

17 / 25

Page 24: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

Estudo de caso - UGTI/FAPEAL

SVN + WebSVN

SVN + WebSVN

18 / 25

Page 25: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 26: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 27: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 28: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 29: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 30: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 31: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 32: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 33: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 34: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 35: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 36: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 37: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 38: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 39: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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

Page 40: Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN

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