Grupo de Estudos SOL7 Junho de 2011
Controle de Versão Augusto Fleck – Arquiteto de Software
Tópicos de Estudo   Introdução O que é controle de versão; Onde se aplica; Tipos; SVN Realidade SOL7 Objetivos; O que já existe(Demonstração); O que falta; PDCA
Introdução O que é controle de versão ? Um sistema de controle de versão, na função prática da Engenharia de Software, é um software com a finalidade de gerenciar diferentes versões no desenvolvimento de um documento qualquer. Esses sistemas são comumente utilizados no desenvolvimento de software para controlar as  diferentes versões , histórico e desenvolvimento,  códigos-fontes  e também da  documentação  de software.
Introdução Onde se aplica ? Desenvolvimento de softwares; Scripts de executação; Documentação; Arquivos em geral;
Introdução Tipos CVS; Mercurial; Git; SVN ; ClearCase; SourceSafe.
SVN O subversion é um sistema de controle de versões que utiliza o conceito de branches, tags e trunk.  Ele veio como evolução do CVS (Concurrent Version System)  e consiste nas seguintes caracteristicas.
SVN Termos e conceitos. Repositório Local central aonde estão contidos todos os arquivos do projeto. Working Copy Cópia de trabalho local na qual o desenvolvedor atua. Checkout Ato de fazer download de um projeto para a working copy. Import Ato de envio dos arquivos de um novo projeto para o repositório. Export Ato de obtenção de um projeto do repositório sem vinculação ao SVN.
SVN Termos e conceitos. Commit Ato de envio das modificações realizadas localmente para o servidor SVN. Update Ato de obtenção das atualizações presentes do servidor SVN, atualizando a cópia local. Revert Ato de reverter as alterações de um documento no working copy. Diff Ato de comparar  um arquivo da  working copy com  alguma versão do repositorio central.
SVN Diretórios especiais da arquitetura. trunk:  armazena a versão funcional mais recente de desenvolvimento. branches :  armazena versões de desenvolvimento paralelo oriundas do trunk, porém isoladas deste. tags:  armazena etiquetas para facilitar a localização de revisões. Algumas caracteristicas avançadas. Branch/Tag Merge Switch Relocate
SVN Boas Práticas de utilização. Toda revisão deve ser comentada para facilitar o entendimento das alterações realizadas; O código no trunk deve sempre estar pronto para ser compilado e colocado em produção se necessário.(Ferramenta de Integração Contínua); É dever de cada programador assegurar que seus commits não causem a quebra do build. Novamente uma ferramenta de Integração Contínua pode auxiliar nesta tarefa. Todo e qualquer backup de versões deve ser mantido no repositório, preferencialmente como uma tag.
Realidade SOL7 Objetivos Controle; Segurança; Colaboratividade; Automatização;  Qualidade ;
Realidade SOL7 O que já existe ? Servidor SVN implementado; Projetos de desenvolvimento submetidos a controle de versão; SOL7BI-2; Mapas exclusive; UmovBi(parcialmente); Integração com redmine ;
Realidade SOL7 O que falta ? Definir politica de versionamento; O que será versionado; Como será organizado; Definição de permissões(Quem acessa o que) Organizar um treinamento de utilização; Migrar projetos;
Realidade SOL7 PDCA Ciclo 1 Definir as politicas de versionamento. Cronograma de migração. Cliclo 2 Treinamento. Utilização em produção(Graduativa). Ciclo 3 Tarefas/Commit. Integração continua.
Demonstração Demonstração básica de funcionamento. Integração com RedMine.
Referências http://blog.walkeralencar.com/archives/16 http://subversion.tigris.org/ http://intentor.com.br/articles/svn-conceitos-boas-praticas-dicas-de-utilizacao/
Obrigado ! Augusto Fleck Arquiteto de Softwares Email: augusto@sol7.com.br

Svn - grupo de estudos sol7

  • 1.
    Grupo de EstudosSOL7 Junho de 2011
  • 2.
    Controle de VersãoAugusto Fleck – Arquiteto de Software
  • 3.
    Tópicos de Estudo Introdução O que é controle de versão; Onde se aplica; Tipos; SVN Realidade SOL7 Objetivos; O que já existe(Demonstração); O que falta; PDCA
  • 4.
    Introdução O queé controle de versão ? Um sistema de controle de versão, na função prática da Engenharia de Software, é um software com a finalidade de gerenciar diferentes versões no desenvolvimento de um documento qualquer. Esses sistemas são comumente utilizados no desenvolvimento de software para controlar as diferentes versões , histórico e desenvolvimento, códigos-fontes e também da documentação de software.
  • 5.
    Introdução Onde seaplica ? Desenvolvimento de softwares; Scripts de executação; Documentação; Arquivos em geral;
  • 6.
    Introdução Tipos CVS;Mercurial; Git; SVN ; ClearCase; SourceSafe.
  • 7.
    SVN O subversioné um sistema de controle de versões que utiliza o conceito de branches, tags e trunk. Ele veio como evolução do CVS (Concurrent Version System) e consiste nas seguintes caracteristicas.
  • 8.
    SVN Termos econceitos. Repositório Local central aonde estão contidos todos os arquivos do projeto. Working Copy Cópia de trabalho local na qual o desenvolvedor atua. Checkout Ato de fazer download de um projeto para a working copy. Import Ato de envio dos arquivos de um novo projeto para o repositório. Export Ato de obtenção de um projeto do repositório sem vinculação ao SVN.
  • 9.
    SVN Termos econceitos. Commit Ato de envio das modificações realizadas localmente para o servidor SVN. Update Ato de obtenção das atualizações presentes do servidor SVN, atualizando a cópia local. Revert Ato de reverter as alterações de um documento no working copy. Diff Ato de comparar um arquivo da working copy com alguma versão do repositorio central.
  • 10.
    SVN Diretórios especiaisda arquitetura. trunk: armazena a versão funcional mais recente de desenvolvimento. branches : armazena versões de desenvolvimento paralelo oriundas do trunk, porém isoladas deste. tags: armazena etiquetas para facilitar a localização de revisões. Algumas caracteristicas avançadas. Branch/Tag Merge Switch Relocate
  • 11.
    SVN Boas Práticasde utilização. Toda revisão deve ser comentada para facilitar o entendimento das alterações realizadas; O código no trunk deve sempre estar pronto para ser compilado e colocado em produção se necessário.(Ferramenta de Integração Contínua); É dever de cada programador assegurar que seus commits não causem a quebra do build. Novamente uma ferramenta de Integração Contínua pode auxiliar nesta tarefa. Todo e qualquer backup de versões deve ser mantido no repositório, preferencialmente como uma tag.
  • 12.
    Realidade SOL7 ObjetivosControle; Segurança; Colaboratividade; Automatização; Qualidade ;
  • 13.
    Realidade SOL7 Oque já existe ? Servidor SVN implementado; Projetos de desenvolvimento submetidos a controle de versão; SOL7BI-2; Mapas exclusive; UmovBi(parcialmente); Integração com redmine ;
  • 14.
    Realidade SOL7 Oque falta ? Definir politica de versionamento; O que será versionado; Como será organizado; Definição de permissões(Quem acessa o que) Organizar um treinamento de utilização; Migrar projetos;
  • 15.
    Realidade SOL7 PDCACiclo 1 Definir as politicas de versionamento. Cronograma de migração. Cliclo 2 Treinamento. Utilização em produção(Graduativa). Ciclo 3 Tarefas/Commit. Integração continua.
  • 16.
    Demonstração Demonstração básicade funcionamento. Integração com RedMine.
  • 17.
    Referências http://blog.walkeralencar.com/archives/16 http://subversion.tigris.org/http://intentor.com.br/articles/svn-conceitos-boas-praticas-dicas-de-utilizacao/
  • 18.
    Obrigado ! AugustoFleck Arquiteto de Softwares Email: augusto@sol7.com.br