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
                                     felipe.buarque@gmail.com

                  Fundação de Amparo a Pesquisa do Estado de Alagoas - FAPEAL
                       Unidade 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ção
             Pra que serve controle de versão?
             Como funciona?
             Controle de versão centralizado x distribuído

      2   Subversion

      3   Estudo de caso - UGTI/FAPEAL
            Cenário
            SVN + 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 acidente
             e acabou perdendo as alterações?
             Tem dificuldades em saber quais as alterações efetuadas em
             um programa, quando foram feitas e quem fez?
             Tem dificuldade em recuperar o código de uma versão anterior
             que está em produção?
             Tem problemas em manter variações do sistema ao mesmo
             tempo?

             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 acidente
             e acabou perdendo as alterações?
             Tem dificuldades em saber quais as alterações efetuadas em
             um programa, quando foram feitas e quem fez?
             Tem dificuldade em recuperar o código de uma versão anterior
             que está em produção?
             Tem problemas em manter variações do sistema ao mesmo
             tempo?

             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 acidente
             e acabou perdendo as alterações?
             Tem dificuldades em saber quais as alterações efetuadas em
             um programa, quando foram feitas e quem fez?
             Tem dificuldade em recuperar o código de uma versão anterior
             que está em produção?
             Tem problemas em manter variações do sistema ao mesmo
             tempo?

             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 dos
             desenvolvedores
             Variações no projeto - diferentes linhas de evolução do
             projeto




                                                                            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 de
             trabalho
             Sicronização realizada através dos comandos de commit e
             update
             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 passa
             obrigatoriamente 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 das
             operações pull e push
             Topologia não definida
             Controle de revisões feito com geração de números utilizando
             hash 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ção
             Pra que serve controle de versão?
             Como funciona?
             Controle de versão centralizado x distribuído

      2   Subversion

      3   Estudo de caso - UGTI/FAPEAL
            Cenário
            SVN + 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ção
             Pra que serve controle de versão?
             Como funciona?
             Controle de versão centralizado x distribuído

      2   Subversion

      3   Estudo de caso - UGTI/FAPEAL
            Cenário
            SVN + 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 pelos
             desenvolvedores
             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 pelos
             desenvolvedores
             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 pelos
             desenvolvedores
             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 SVN
                    Linhas de código por desenvolvedor
                    Atividades dos desenvolvedores por período de tempo
                    Árvore do repositório
                    Tamanho médio dos arquivos
                    Principais tags utilizadas nos repositórios
                    Integraçã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 SVN
                    Linhas de código por desenvolvedor
                    Atividades dos desenvolvedores por período de tempo
                    Árvore do repositório
                    Tamanho médio dos arquivos
                    Principais tags utilizadas nos repositórios
                    Integraçã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 SVN
                    Linhas de código por desenvolvedor
                    Atividades dos desenvolvedores por período de tempo
                    Árvore do repositório
                    Tamanho médio dos arquivos
                    Principais tags utilizadas nos repositórios
                    Integraçã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ódigo
             fonte)
             Gerar o arquivo de log do projeto (o StatSVN gera os gráficos
             a 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 o
             diretó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ódigo
             fonte)
             Gerar o arquivo de log do projeto (o StatSVN gera os gráficos
             a 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 o
             diretó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ódigo
             fonte)
             Gerar o arquivo de log do projeto (o StatSVN gera os gráficos
             a 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 o
             diretó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ódigo
             fonte)
             Gerar o arquivo de log do projeto (o StatSVN gera os gráficos
             a 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 o
             diretó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ódigo
             fonte)
             Gerar o arquivo de log do projeto (o StatSVN gera os gráficos
             a 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 o
             diretó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ódigo
             fonte)
             Gerar o arquivo de log do projeto (o StatSVN gera os gráficos
             a 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 o
             diretó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ódigo
             fonte)
             Gerar o arquivo de log do projeto (o StatSVN gera os gráficos
             a 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 o
             diretó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ódigo
             fonte)
             Gerar o arquivo de log do projeto (o StatSVN gera os gráficos
             a 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 o
             diretó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ção
             Pra que serve controle de versão?
             Como funciona?
             Controle de versão centralizado x distribuído

      2   Subversion

      3   Estudo de caso - UGTI/FAPEAL
            Cenário
            SVN + 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 no
             desenvolvimento de software
             Não se restringe a programadores
             Agilidade no desenvolvimento
             Faz parte das exigências para melhorias do processo de
             desenvolvimento (CMMi, MPS-Br, SPICE)
             Ambiente para monitoramento por parte de gestores e
             gerentes 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’Reilly
          Media, 2007.
      [3] de Souza, D. Subversion - controle de versão de
          documentos. Web, August 2007.
      [4] Dias, A. F. Conceitos básicos de controle de versão de
          software — centralizado e distribuído. Web, June 2009.
      [5] StatSVN. Statsvn’s wiki, 2009.


                                                                            25 / 25

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

  • 1.
    Controle de Versãoe Monitoramento de Projetos com SVN + WebSVN + StatSVN Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN Felipe Buarque de Queiroz felipe.buarque@gmail.com Fundação de Amparo a Pesquisa do Estado de Alagoas - FAPEAL Unidade Gestora de Tecnologia da Informação - UGTI Novembro de 2009 1 / 25
  • 2.
    Controle de Versãoe Monitoramento de Projetos com SVN + WebSVN + StatSVN Introdução Roteiro I 1 Introdução Pra que serve controle de versão? Como funciona? Controle de versão centralizado x distribuído 2 Subversion 3 Estudo de caso - UGTI/FAPEAL Cenário SVN + WebSVN “Integração” com o StatSVN 4 Conclusões 2 / 25
  • 3.
    Controle de Versãoe Monitoramento de Projetos com SVN + WebSVN + StatSVN Introdução Introdução Alguém já sobrescreveu o código de outra pessoa por acidente e acabou perdendo as alterações? Tem dificuldades em saber quais as alterações efetuadas em um programa, quando foram feitas e quem fez? Tem dificuldade em recuperar o código de uma versão anterior que está em produção? Tem problemas em manter variações do sistema ao mesmo tempo? if resposta == ‘Sim’ : Você precisa de um software para controle de versão! 3 / 25
  • 4.
    Controle de Versãoe Monitoramento de Projetos com SVN + WebSVN + StatSVN Introdução Introdução Alguém já sobrescreveu o código de outra pessoa por acidente e acabou perdendo as alterações? Tem dificuldades em saber quais as alterações efetuadas em um programa, quando foram feitas e quem fez? Tem dificuldade em recuperar o código de uma versão anterior que está em produção? Tem problemas em manter variações do sistema ao mesmo tempo? if resposta == ‘Sim’ : Você precisa de um software para controle de versão! 3 / 25
  • 5.
    Controle de Versãoe Monitoramento de Projetos com SVN + WebSVN + StatSVN Introdução Introdução Alguém já sobrescreveu o código de outra pessoa por acidente e acabou perdendo as alterações? Tem dificuldades em saber quais as alterações efetuadas em um programa, quando foram feitas e quem fez? Tem dificuldade em recuperar o código de uma versão anterior que está em produção? Tem problemas em manter variações do sistema ao mesmo tempo? if resposta == ‘Sim’ : Você precisa de um software para controle de versão! 3 / 25
  • 6.
    Controle de Versãoe 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 dos desenvolvedores Variações no projeto - diferentes linhas de evolução do projeto 4 / 25
  • 7.
    Controle de Versãoe Monitoramento de Projetos com SVN + WebSVN + StatSVN Introdução Como funciona? Como funciona? 5 / 25
  • 8.
    Controle de Versãoe Monitoramento de Projetos com SVN + WebSVN + StatSVN Introdução Como funciona? Como funciona? Composto de duas partes: repositório e área/cópia de trabalho Sicronização realizada através dos comandos de commit e update Cada commit gera uma nova revisão no repositório 6 / 25
  • 9.
    Controle de Versãoe Monitoramento de Projetos com SVN + WebSVN + StatSVN Introdução Controle de versão centralizado x distribuído Controle de versão centralizado 7 / 25
  • 10.
    Controle de Versãoe 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 passa obrigatoriamente pelo repositório central Controle de revisões feito com um número inteiro sequencial Exemplo de softwares: CVS, Subversion (SVN) 8 / 25
  • 11.
    Controle de Versãoe 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
  • 12.
    Controle de Versãoe 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 das operações pull e push Topologia não definida Controle de revisões feito com geração de números utilizando hash SHA-1 Exemplo de softwares: Mercurial, Git 10 / 25
  • 13.
    Controle de Versãoe 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
  • 14.
    Controle de Versãoe Monitoramento de Projetos com SVN + WebSVN + StatSVN Subversion Roteiro I 1 Introdução Pra que serve controle de versão? Como funciona? Controle de versão centralizado x distribuído 2 Subversion 3 Estudo de caso - UGTI/FAPEAL Cenário SVN + WebSVN “Integração” com o StatSVN 4 Conclusões 12 / 25
  • 15.
    Controle de Versãoe 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
  • 16.
    Controle de Versãoe 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
  • 17.
    Controle de Versãoe 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
  • 18.
    Controle de Versãoe Monitoramento de Projetos com SVN + WebSVN + StatSVN Estudo de caso - UGTI/FAPEAL Roteiro I 1 Introdução Pra que serve controle de versão? Como funciona? Controle de versão centralizado x distribuído 2 Subversion 3 Estudo de caso - UGTI/FAPEAL Cenário SVN + WebSVN “Integração” com o StatSVN 4 Conclusões 14 / 25
  • 19.
    Controle de Versãoe 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
  • 20.
    Controle de Versãoe 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 pelos desenvolvedores Autenticação para os desenvolvedores e gerentes de projeto Usa um SO derivado do Debian? apt-get install websvn 16 / 25
  • 21.
    Controle de Versãoe 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 pelos desenvolvedores Autenticação para os desenvolvedores e gerentes de projeto Usa um SO derivado do Debian? apt-get install websvn 16 / 25
  • 22.
    Controle de Versãoe 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 pelos desenvolvedores Autenticação para os desenvolvedores e gerentes de projeto Usa um SO derivado do Debian? apt-get install websvn 16 / 25
  • 23.
    Controle de Versãoe Monitoramento de Projetos com SVN + WebSVN + StatSVN Estudo de caso - UGTI/FAPEAL SVN + WebSVN SVN + WebSVN 17 / 25
  • 24.
    Controle de Versãoe Monitoramento de Projetos com SVN + WebSVN + StatSVN Estudo de caso - UGTI/FAPEAL SVN + WebSVN SVN + WebSVN 18 / 25
  • 25.
    Controle de Versãoe 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 SVN Linhas de código por desenvolvedor Atividades dos desenvolvedores por período de tempo Árvore do repositório Tamanho médio dos arquivos Principais tags utilizadas nos repositórios Integração com o Twitter (:D) ... Usa um SO derivado do Debian? apt-get install statsvn 19 / 25
  • 26.
    Controle de Versãoe 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 SVN Linhas de código por desenvolvedor Atividades dos desenvolvedores por período de tempo Árvore do repositório Tamanho médio dos arquivos Principais tags utilizadas nos repositórios Integração com o Twitter (:D) ... Usa um SO derivado do Debian? apt-get install statsvn 19 / 25
  • 27.
    Controle de Versãoe 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 SVN Linhas de código por desenvolvedor Atividades dos desenvolvedores por período de tempo Árvore do repositório Tamanho médio dos arquivos Principais tags utilizadas nos repositórios Integração com o Twitter (:D) ... Usa um SO derivado do Debian? apt-get install statsvn 19 / 25
  • 28.
    Controle de Versãoe Monitoramento de Projetos com SVN + WebSVN + StatSVN Estudo de caso - UGTI/FAPEAL “Integração” com o StatSVN StatSVN 20 / 25
  • 29.
    Controle de Versãoe Monitoramento de Projetos com SVN + WebSVN + StatSVN Estudo de caso - UGTI/FAPEAL “Integração” com o StatSVN StatSVN 21 / 25
  • 30.
    Controle de Versãoe 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ódigo fonte) Gerar o arquivo de log do projeto (o StatSVN gera os gráficos a 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 o diretório do StatSVN no projeto 22 / 25
  • 31.
    Controle de Versãoe 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ódigo fonte) Gerar o arquivo de log do projeto (o StatSVN gera os gráficos a 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 o diretório do StatSVN no projeto 22 / 25
  • 32.
    Controle de Versãoe 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ódigo fonte) Gerar o arquivo de log do projeto (o StatSVN gera os gráficos a 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 o diretório do StatSVN no projeto 22 / 25
  • 33.
    Controle de Versãoe 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ódigo fonte) Gerar o arquivo de log do projeto (o StatSVN gera os gráficos a 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 o diretório do StatSVN no projeto 22 / 25
  • 34.
    Controle de Versãoe 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ódigo fonte) Gerar o arquivo de log do projeto (o StatSVN gera os gráficos a 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 o diretório do StatSVN no projeto 22 / 25
  • 35.
    Controle de Versãoe 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ódigo fonte) Gerar o arquivo de log do projeto (o StatSVN gera os gráficos a 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 o diretório do StatSVN no projeto 22 / 25
  • 36.
    Controle de Versãoe 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ódigo fonte) Gerar o arquivo de log do projeto (o StatSVN gera os gráficos a 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 o diretório do StatSVN no projeto 22 / 25
  • 37.
    Controle de Versãoe 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ódigo fonte) Gerar o arquivo de log do projeto (o StatSVN gera os gráficos a 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 o diretório do StatSVN no projeto 22 / 25
  • 38.
    Controle de Versãoe Monitoramento de Projetos com SVN + WebSVN + StatSVN Conclusões Roteiro I 1 Introdução Pra que serve controle de versão? Como funciona? Controle de versão centralizado x distribuído 2 Subversion 3 Estudo de caso - UGTI/FAPEAL Cenário SVN + WebSVN “Integração” com o StatSVN 4 Conclusões 23 / 25
  • 39.
    Controle de Versãoe Monitoramento de Projetos com SVN + WebSVN + StatSVN Conclusões Conclusões Controle de versão resolve diversos problemas no desenvolvimento de software Não se restringe a programadores Agilidade no desenvolvimento Faz parte das exigências para melhorias do processo de desenvolvimento (CMMi, MPS-Br, SPICE) Ambiente para monitoramento por parte de gestores e gerentes de projeto 24 / 25
  • 40.
    Controle de Versãoe 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’Reilly Media, 2007. [3] de Souza, D. Subversion - controle de versão de documentos. Web, August 2007. [4] Dias, A. F. Conceitos básicos de controle de versão de software — centralizado e distribuído. Web, June 2009. [5] StatSVN. Statsvn’s wiki, 2009. 25 / 25