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

Post on 09-Jul-2015

3.152 views 3 download

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

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