Gestão de Configuração de Software - Controle de Versões - <ul><ul><li>ES06 – Especialização em Engenharia de Software </l...
Agenda <ul><li>Versionamento </li></ul><ul><li>Ações </li></ul><ul><ul><li>Adicionar ao Controle de Versões </li></ul></ul...
Versionamento <ul><li>Versionamento é a disciplina através da qual são preservadas as versões de um artefato, de modo sist...
Versionamento >_ arquivo1.c document2.doc classeA.java 1 1 1 2 2 2 3 3 4 4 5 6 Copyright © 2010 Misael Santos Gestão de Co...
Ações <ul><li>Adicionar ao Controle de Versões </li></ul><ul><ul><li>Adicionar um elemento ao sistema de controle de versõ...
Ações <ul><li>Checkout </li></ul><ul><ul><li>Obter um elemento do sistema de controle de versões </li></ul></ul>Copyright ...
Ações <ul><li>Checkout </li></ul><ul><ul><li>Algumas ferramentas permitem dois tipos de checkout: </li></ul></ul><ul><ul><...
Ações <ul><li>Checkin </li></ul><ul><ul><li>Gravar as alterações no repositório gerando uma nova versão do elemento </li><...
Ações <ul><li>Checkin </li></ul><ul><ul><li>Em algumas ferramentas chamado de  Commit </li></ul></ul><ul><ul><li>Em casos ...
Ações <ul><li>Chekin x Conflitos </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
Ações <ul><li>Update </li></ul><ul><ul><li>Obter uma versão mais recente do elemento do sistema de controle de versões </l...
Ações <ul><li>Update </li></ul><ul><ul><li>Não confundir “atualizar” com “versionar” </li></ul></ul>Copyright © 2010 Misae...
Ações <ul><li>Merge (Combinação) </li></ul><ul><ul><li>Consiste em combinar alterações feitas por usuário distintos sobre ...
Ações <ul><li>Merge (Combinação) </li></ul><ul><ul><li>Algumas ferramentas executam Merge Automático em casos onde não há ...
Ações <ul><li>Branching (Ramificação) </li></ul><ul><ul><li>Consiste em criar ramos paralelos de desenvolvimento ( branche...
Ações <ul><li>Branching (Ramificação) </li></ul><ul><ul><li>Consiste em criar ramos paralelos de desenvolvimento ( branche...
Ações <ul><li>Branching (Ramificação) </li></ul><ul><ul><li>Por default, existe pelo menos um  branche  em um projeto, o P...
Branching <ul><li>Estratégias </li></ul><ul><ul><li>Branch Per Release </li></ul></ul>Copyright © 2010 Misael Santos Gestã...
Branching <ul><li>Estratégias </li></ul><ul><ul><li>Code-Promotion Branches </li></ul></ul>Copyright © 2010 Misael Santos ...
Branching <ul><li>Estratégias </li></ul><ul><ul><li>Branch Per Tasks </li></ul></ul>Copyright © 2010 Misael Santos Gestão ...
Branching <ul><li>Estratégias </li></ul><ul><ul><li>Branch Per Component </li></ul></ul>Copyright © 2010 Misael Santos Ges...
Branching <ul><li>Estratégias </li></ul><ul><ul><li>Branch Per Technology </li></ul></ul>Copyright © 2010 Misael Santos Ge...
Branching and Merging  Anti-Patterns <ul><li>Merge Paranoia  - Evitar  merge  a todo custo, geralmente com medo das conseq...
Branching and Merging  Anti-Patterns <ul><li>Cascading Branches  - Criar  branches  mas nunca combiná-las de volta à linha...
Controle de Versões Distribuídos <ul><li>Distributed  Version Control Systems  – DVCS </li></ul><ul><li>Equipe com centena...
Controle de Versões Distribuídos <ul><li>Vantagens </li></ul><ul><ul><li>Rapidez:  Ações executadas localmente. </li></ul>...
Controle de Versões Distribuídos <ul><li>Vantagens </li></ul><ul><ul><li>Confiabilidade:  No caso de uma pane os desenvolv...
Controle de Versões Distribuídos <ul><li>Desvantagens </li></ul><ul><ul><li>Maior complexidade </li></ul></ul><ul><ul><ul>...
Controle de Versões Distribuídos <ul><li>Desvantagens </li></ul><ul><ul><li>Tratamento de arquivos binários </li></ul></ul...
Controle de Versões Distribuídos <ul><li>Ferramentas </li></ul><ul><ul><li>Mercurial </li></ul></ul><ul><ul><li>Git </li><...
Controle de Versões Distribuídos <ul><li>Projetos que usam o Git </li></ul><ul><ul><li>Android  </li></ul></ul><ul><ul><li...
CVS <ul><li>Concurrent Versions System – Sistema de Versões Concorrentes </li></ul><ul><li>É um Sistema de Controle de Ver...
CVS <ul><li>Sua versão para Windows se chama CVSNT </li></ul><ul><li>Possui vários tipos diferentes de clientes </li></ul>...
Arquitetura Copyright © 2010 Misael Santos Gestão de Configuração de Software
CVS <ul><li>Principais comandos: </li></ul><ul><ul><li>Checkout </li></ul></ul><ul><ul><li>Commit </li></ul></ul><ul><ul><...
Cenário Básico Copyright © 2010 Misael Santos Gestão de Configuração de Software
CVS: Conceitos <ul><li>Repositório </li></ul><ul><ul><li>Lugar onde ficam guardados os arquivos sob controle do CVS. Um re...
CVS: Conceitos <ul><li>Estrutura de diretórios interna do CVS </li></ul>Copyright © 2010 Misael Santos Gestão de Configura...
CVS: Conceitos <ul><li>Revisão </li></ul><ul><ul><li>Arquivo    revisão </li></ul></ul><ul><ul><li>-----------------------...
CVS <ul><li>Tags ( Baselining ) </li></ul><ul><li>file1  file2  file3  file4  file5 </li></ul><ul><li>1.1  1.1  1.1  1.1  ...
CVS <ul><li>Tags ( Baselining ) Exemplos de nomes: Apache Struts Tags: STRUTS_1_2_3, STRUTS_1_2_2, STRUTS_1_2_1, STRUTS_1_...
TortoiseCVS <ul><li>Cliente CVS integrado ao Windows Explorer </li></ul>Copyright © 2010 Misael Santos Gestão de Configura...
WinCVS <ul><li>Cliente CVS desktop </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
ViewCVS <ul><li>Cliente CVS Web </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
Subversion <ul><li>Sistema de Controle de Versões Open-source originado a partir do projeto do CVS </li></ul>Copyright © 2...
Subversion x CVS Copyright © 2010 Misael Santos Gestão de Configuração de Software Característica CVSNT Subversion Autenti...
TortoiseSVN Copyright © 2010 Misael Santos Gestão de Configuração de Software
Plugin SVN no Eclipse Copyright © 2010 Misael Santos Gestão de Configuração de Software
CA Endevor <ul><li>Ferramenta de versionamento e distribuição para Mainframe </li></ul><ul><ul><li>Trabalha com objetos de...
CA Endevor <ul><li>Publicação de Objetos </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
CA Endevor Copyright © 2010 Misael Santos Gestão de Configuração de Software
CA Endevor Copyright © 2010 Misael Santos Gestão de Configuração de Software
Exercício 1 <ul><li>Faça um  Checkout  do módulo ProjetoA em sua pasta de trabalho </li></ul><ul><ul><li>Execute a operaçã...
Exercício 1 <ul><li>Crie um arquivo na pasta /01-Requisitos e  adicione-o ao controle de versões </li></ul><ul><ul><li>Cri...
Exercício 1 <ul><li>Atualize  o seu Workspace </li></ul><ul><ul><li>Execute a operação  “CVS Atualizar”  sobre a pasta des...
Exercício 1 <ul><li>Gere uma  nova versão  do seu arquivo </li></ul><ul><ul><li>Altere o seu arquivo na  PRIMEIRA LINHA  d...
Exercício 2 <ul><li>Altere a  PRIMEIRA LINHA  do arquivo do seu vizinho da esquerda e tente gravar as alterações </li></ul...
Exercício 2 <ul><li>Execute o comando de atualização </li></ul><ul><ul><li>Execute a operação  “CVS  Atualizar”  no arquiv...
Exercício 3 <ul><li>JIRA x CVS ( Parte 1 ) </li></ul><ul><li>Acesse o JIRA:  http://?????????????????8:8080  com o seu usu...
Exercício 3 <ul><li>JIRA x CVS ( Parte 2 ) </li></ul><ul><li>Verifique se foi criada uma SM pra você . </li></ul><ul><li>C...
Referências <ul><li>PRESSMAN, R. S.  Engenharia de Software , 6ª. ed., 2006. </li></ul><ul><li>HASS A. M. J. ,  Configurat...
Upcoming SlideShare
Loading in …5
×

GCS - Aula 07 - Sistemas de Controle de Versões

5,292 views

Published on

GCS - Aula 07 - Sistemas de Controle de Versões

Conceitos e Ferramentas

Disciplina de Gestão de Configuração de Software do Curso de Especialização em Engenharia de Software.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,292
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

GCS - Aula 07 - Sistemas de Controle de Versões

  1. 1. Gestão de Configuração de Software - Controle de Versões - <ul><ul><li>ES06 – Especialização em Engenharia de Software </li></ul></ul><ul><ul><li>Prof.: Misael Santos (misael@gmail.com) </li></ul></ul><ul><ul><li>Ago/2010 </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  2. 2. Agenda <ul><li>Versionamento </li></ul><ul><li>Ações </li></ul><ul><ul><li>Adicionar ao Controle de Versões </li></ul></ul><ul><ul><li>Checkout </li></ul></ul><ul><ul><li>Checkin </li></ul></ul><ul><ul><li>Update </li></ul></ul><ul><ul><li>Merge </li></ul></ul><ul><ul><li>Branching </li></ul></ul><ul><li>Controle de Versões Distribuídos </li></ul><ul><li>Ferramentas </li></ul><ul><ul><li>CVS </li></ul></ul><ul><ul><li>Subversion </li></ul></ul><ul><ul><li>Endevor </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  3. 3. Versionamento <ul><li>Versionamento é a disciplina através da qual são preservadas as versões de um artefato, de modo sistemático e seguro, não limitado em número de versões. </li></ul><ul><li>Versão: </li></ul><ul><ul><li>Estado definido de um objeto num dado momento. </li></ul></ul><ul><ul><li>“ Fotografia” do objeto. </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  4. 4. Versionamento >_ arquivo1.c document2.doc classeA.java 1 1 1 2 2 2 3 3 4 4 5 6 Copyright © 2010 Misael Santos Gestão de Configuração de Software
  5. 5. Ações <ul><li>Adicionar ao Controle de Versões </li></ul><ul><ul><li>Adicionar um elemento ao sistema de controle de versões gerando a sua primeira versão </li></ul></ul><ul><ul><li>Torna o elemento acessível aos usuários do repositório </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  6. 6. Ações <ul><li>Checkout </li></ul><ul><ul><li>Obter um elemento do sistema de controle de versões </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  7. 7. Ações <ul><li>Checkout </li></ul><ul><ul><li>Algumas ferramentas permitem dois tipos de checkout: </li></ul></ul><ul><ul><ul><li>Reservado ( lock-modify-unlock ) </li></ul></ul></ul><ul><ul><ul><ul><li>Somente um usuário terá a posse do arquivo, não permitindo o trabalho simultâneo </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Suas alterações irão constituir uma nova versão </li></ul></ul></ul></ul><ul><ul><ul><li>Não reservado ( copy-modify-merge ) </li></ul></ul></ul><ul><ul><ul><ul><li>Vários usuários podem ter a posse do arquivo , permitindo o trabalho simultâneo. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Não é garantido que a sua versão será consolidada </li></ul></ul></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  8. 8. Ações <ul><li>Checkin </li></ul><ul><ul><li>Gravar as alterações no repositório gerando uma nova versão do elemento </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  9. 9. Ações <ul><li>Checkin </li></ul><ul><ul><li>Em algumas ferramentas chamado de Commit </li></ul></ul><ul><ul><li>Em casos de Checkout Não-reservado pode gerar conflito de versões </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  10. 10. Ações <ul><li>Chekin x Conflitos </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  11. 11. Ações <ul><li>Update </li></ul><ul><ul><li>Obter uma versão mais recente do elemento do sistema de controle de versões </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  12. 12. Ações <ul><li>Update </li></ul><ul><ul><li>Não confundir “atualizar” com “versionar” </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  13. 13. Ações <ul><li>Merge (Combinação) </li></ul><ul><ul><li>Consiste em combinar alterações feitas por usuário distintos sobre o mesmo arquivo </li></ul></ul>Versão A Versão B Versão Combinada Copyright © 2010 Misael Santos Gestão de Configuração de Software
  14. 14. Ações <ul><li>Merge (Combinação) </li></ul><ul><ul><li>Algumas ferramentas executam Merge Automático em casos onde não há conflitos (alterações no mesmo trecho de código) </li></ul></ul><ul><ul><li>Em caso de conflito o usuário terá que executar o merge entre a versão dele e a versão remota (do repositório) </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  15. 15. Ações <ul><li>Branching (Ramificação) </li></ul><ul><ul><li>Consiste em criar ramos paralelos de desenvolvimento ( branches ) </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  16. 16. Ações <ul><li>Branching (Ramificação) </li></ul><ul><ul><li>Consiste em criar ramos paralelos de desenvolvimento ( branches ) </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  17. 17. Ações <ul><li>Branching (Ramificação) </li></ul><ul><ul><li>Por default, existe pelo menos um branche em um projeto, o Principal, também conhecido como “ mainline “ ou “ trunk ” ou “ HEAD ”. </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  18. 18. Branching <ul><li>Estratégias </li></ul><ul><ul><li>Branch Per Release </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  19. 19. Branching <ul><li>Estratégias </li></ul><ul><ul><li>Code-Promotion Branches </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  20. 20. Branching <ul><li>Estratégias </li></ul><ul><ul><li>Branch Per Tasks </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  21. 21. Branching <ul><li>Estratégias </li></ul><ul><ul><li>Branch Per Component </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  22. 22. Branching <ul><li>Estratégias </li></ul><ul><ul><li>Branch Per Technology </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  23. 23. Branching and Merging Anti-Patterns <ul><li>Merge Paranoia - Evitar merge a todo custo, geralmente com medo das consequências. </li></ul><ul><li>Merge Mania - gastar muito tempo realizando merge em elementos do software ao invés de desenvolvê-los. </li></ul><ul><li>Big Bang Merge - adiar o merge das branches até o final do desenvolvimento e tentar realizar o merge de todas as branches simultaneamente. </li></ul><ul><li>Never-Ending Merge - Executar atividades de merge continuamente porque sempre existe mais aonde realizar o merge . </li></ul><ul><li>Wrong-Way Merge - Executar o merge entre uma versão de um recurso de software e uma versão antiga. </li></ul><ul><li>Branch Mania - Criar muitas branches por nenhuma razão aparente. </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  24. 24. Branching and Merging Anti-Patterns <ul><li>Cascading Branches - Criar branches mas nunca combiná-las de volta à linha principal de desenvolvimento. </li></ul><ul><li>Mysterious Branches - Criar uma branche por nenhuma razão aparente. </li></ul><ul><li>Temporary Branches - Criar branches para alterações e permitir que ela se torne um workspace temporário permanente. </li></ul><ul><li>Volatile Branches - Branches com recursos de software instáveis compartilhadas por outras branches ou combinadas em uma outa branch . </li></ul><ul><li>Development Freeze - Parar todas as atividades de desenvolvimento enquanto estiver criando branches , merges e gerando novas baselines. </li></ul><ul><li>Berlin Wall - Usar branches para dividir os membros das equipes de desenvolvimento ao invés de dividir o trabalho que eles estão executando. </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  25. 25. Controle de Versões Distribuídos <ul><li>Distributed Version Control Systems – DVCS </li></ul><ul><li>Equipe com centenas de desenvolvedores: Mais processamento vai ser exigido do servidor central, piorando o tempo de resposta; </li></ul><ul><li>Equipe espalhada em diferentes filiais da empresa : Acesso remoto ao repositório com limitações de conexão e de permissão de escrita; </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  26. 26. Controle de Versões Distribuídos <ul><li>Vantagens </li></ul><ul><ul><li>Rapidez: Ações executadas localmente. </li></ul></ul><ul><ul><li>Autonomia: Possibilidade de trabalhar desconectado por um período. </li></ul></ul><ul><ul><li>Ramos privativos: O desenvolvedor sempre trabalha em ramos privativos, decidindo o momento de combinar com os outros. </li></ul></ul><ul><ul><li>Facilidade de Merge: Possuem mecanismos de rastreamento automático de merges. </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  27. 27. Controle de Versões Distribuídos <ul><li>Vantagens </li></ul><ul><ul><li>Confiabilidade: No caso de uma pane os desenvolvedores conseguem trabalhar nos seus repositórios. </li></ul></ul><ul><ul><li>Redução de custos com servidor: Sem a necessidade de possuir um servidor de grande poder de processamento. </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  28. 28. Controle de Versões Distribuídos <ul><li>Desvantagens </li></ul><ul><ul><li>Maior complexidade </li></ul></ul><ul><ul><ul><li>Exige maior conhecimento da ferramenta e do processo </li></ul></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  29. 29. Controle de Versões Distribuídos <ul><li>Desvantagens </li></ul><ul><ul><li>Tratamento de arquivos binários </li></ul></ul><ul><ul><ul><li>Controle de concorrência mais complicado </li></ul></ul></ul><ul><ul><li>As ferramentas de controle de mudanças ainda são centralizadas </li></ul></ul><ul><ul><ul><li>Ainda não existe integração entre ferramentas </li></ul></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  30. 30. Controle de Versões Distribuídos <ul><li>Ferramentas </li></ul><ul><ul><li>Mercurial </li></ul></ul><ul><ul><li>Git </li></ul></ul><ul><ul><li>Bazaar </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  31. 31. Controle de Versões Distribuídos <ul><li>Projetos que usam o Git </li></ul><ul><ul><li>Android </li></ul></ul><ul><ul><li>Btrfs da Oracle </li></ul></ul><ul><ul><li>Gnome </li></ul></ul><ul><ul><li>Google </li></ul></ul><ul><ul><li>Kernel Linux </li></ul></ul><ul><ul><li>Perl </li></ul></ul><ul><ul><li>Qt (toolkit) </li></ul></ul><ul><ul><li>Ruby on Rails </li></ul></ul><ul><ul><li>Samba </li></ul></ul><ul><ul><li>Servidor X.org </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  32. 32. CVS <ul><li>Concurrent Versions System – Sistema de Versões Concorrentes </li></ul><ul><li>É um Sistema de Controle de Versões OpenSource e Multiplataforma </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  33. 33. CVS <ul><li>Sua versão para Windows se chama CVSNT </li></ul><ul><li>Possui vários tipos diferentes de clientes </li></ul><ul><ul><li>WinCVS </li></ul></ul><ul><ul><li>TortoiseCVS </li></ul></ul><ul><ul><li>Eclipse </li></ul></ul><ul><ul><li>ViewCVS, CVSweb... </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  34. 34. Arquitetura Copyright © 2010 Misael Santos Gestão de Configuração de Software
  35. 35. CVS <ul><li>Principais comandos: </li></ul><ul><ul><li>Checkout </li></ul></ul><ul><ul><li>Commit </li></ul></ul><ul><ul><li>Update </li></ul></ul><ul><ul><li>Merge </li></ul></ul><ul><ul><li>Diff </li></ul></ul><ul><ul><li>Release </li></ul></ul><ul><ul><li>Import </li></ul></ul><ul><ul><li>Export </li></ul></ul><ul><ul><li>Add </li></ul></ul><ul><ul><li>Rem </li></ul></ul><ul><ul><li>Status </li></ul></ul><ul><ul><li>Tag </li></ul></ul><ul><ul><li>Branch </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  36. 36. Cenário Básico Copyright © 2010 Misael Santos Gestão de Configuração de Software
  37. 37. CVS: Conceitos <ul><li>Repositório </li></ul><ul><ul><li>Lugar onde ficam guardados os arquivos sob controle do CVS. Um repositório é representado fisicamente por um diretório. </li></ul></ul><ul><li>Módulo </li></ul><ul><ul><li>Consiste em um conjunto de arquivos agrupados em pastas dentro de um repositório. </li></ul></ul><ul><ul><li>Normalmente um por projeto ou sistema </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  38. 38. CVS: Conceitos <ul><li>Estrutura de diretórios interna do CVS </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  39. 39. CVS: Conceitos <ul><li>Revisão </li></ul><ul><ul><li>Arquivo revisão </li></ul></ul><ul><ul><li>--------------------------------------------------------- </li></ul></ul><ul><ul><li>build.xml 1.3 </li></ul></ul><ul><ul><li>cadastro.jsp 1.34 </li></ul></ul><ul><ul><li>clientes.jsp 1.27 </li></ul></ul><ul><ul><li>index.jsp 1.21 </li></ul></ul><ul><ul><li>index.css 1.1 </li></ul></ul><ul><ul><li>login.jsp 1.10 </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  40. 40. CVS <ul><li>Tags ( Baselining ) </li></ul><ul><li>file1 file2 file3 file4 file5 </li></ul><ul><li>1.1 1.1 1.1 1.1 /--1.1* <-*- TAG “versao1-0” </li></ul><ul><li>1.2*- 1.2 1.2 -1.2* - </li></ul><ul><li>1.3 - 1.3*- 1.3 / 1.3 </li></ul><ul><li>1.4 1.4 / 1.4 </li></ul><ul><li>-1.5*- 1.5 </li></ul><ul><li>1.6 </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  41. 41. CVS <ul><li>Tags ( Baselining ) Exemplos de nomes: Apache Struts Tags: STRUTS_1_2_3, STRUTS_1_2_2, STRUTS_1_2_1, STRUTS_1_2_0, STRUTS_1_2_4 Apacha Jakarta Tomcat 5 Tags: TOMCAT_5_0_26, TOMCAT_5_0_25, TOMCAT_5_0_24 NovoSoft UML Library for Java (nsuml_1_4) Tags: release0_1_0, release0_1_1, release0_0_8, release0_0_3, release0_0_2, release0_0_4 </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  42. 42. TortoiseCVS <ul><li>Cliente CVS integrado ao Windows Explorer </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  43. 43. WinCVS <ul><li>Cliente CVS desktop </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  44. 44. ViewCVS <ul><li>Cliente CVS Web </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  45. 45. Subversion <ul><li>Sistema de Controle de Versões Open-source originado a partir do projeto do CVS </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  46. 46. Subversion x CVS Copyright © 2010 Misael Santos Gestão de Configuração de Software Característica CVSNT Subversion Autenticação via Active Directory ou SSH SIM NÃO Rename NÃO SIM Versionamento de Pastas e Metadados NÃO SIM Commits Atômicos NÃO SIM Tags e Branches Identificação Cópia Mantém o histórico de cópias e arquivos renomeados NÃO SIM Armazenamento Sistema de Arquivos Banco de Dados Tratamento de arquivos binários NÃO SIM
  47. 47. TortoiseSVN Copyright © 2010 Misael Santos Gestão de Configuração de Software
  48. 48. Plugin SVN no Eclipse Copyright © 2010 Misael Santos Gestão de Configuração de Software
  49. 49. CA Endevor <ul><li>Ferramenta de versionamento e distribuição para Mainframe </li></ul><ul><ul><li>Trabalha com objetos de linguagens específicas: COBOL e NATURAL </li></ul></ul><ul><li>Operações: </li></ul><ul><ul><li>Adicionar </li></ul></ul><ul><ul><li>Mover (entre estágios) </li></ul></ul><ul><ul><li>Recuperar (Retrieve) </li></ul></ul><ul><ul><li>Consultar </li></ul></ul><ul><ul><li>Distribuição </li></ul></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  50. 50. CA Endevor <ul><li>Publicação de Objetos </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  51. 51. CA Endevor Copyright © 2010 Misael Santos Gestão de Configuração de Software
  52. 52. CA Endevor Copyright © 2010 Misael Santos Gestão de Configuração de Software
  53. 53. Exercício 1 <ul><li>Faça um Checkout do módulo ProjetoA em sua pasta de trabalho </li></ul><ul><ul><li>Execute a operação “CVS Obter Módulo...” </li></ul></ul><ul><ul><li>Parâmetros do TortoiseCVS: </li></ul></ul><ul><ul><ul><li>Protocolo: pserver </li></ul></ul></ul><ul><ul><ul><li>Host: ??????????????? </li></ul></ul></ul><ul><ul><ul><li>Porta: 2401 </li></ul></ul></ul><ul><ul><ul><li>Repositório: /repositorio </li></ul></ul></ul><ul><ul><ul><li>Usuário: usuarioXX </li></ul></ul></ul><ul><ul><ul><li>Módulo : projetoA </li></ul></ul></ul>cvs checkout Copyright © 2010 Misael Santos Gestão de Configuração de Software
  54. 54. Exercício 1 <ul><li>Crie um arquivo na pasta /01-Requisitos e adicione-o ao controle de versões </li></ul><ul><ul><li>Crie um arquivo texto com algum conteúdo na pasta </li></ul></ul><ul><ul><li>Execute o “CVS Adicionar” sobre o arquivo </li></ul></ul><ul><ul><li>Consolide a operação com o “CVS Gravar...” </li></ul></ul><ul><ul><li>Coloque um comentário </li></ul></ul>cvs add  cvs commit Copyright © 2010 Misael Santos Gestão de Configuração de Software
  55. 55. Exercício 1 <ul><li>Atualize o seu Workspace </li></ul><ul><ul><li>Execute a operação “CVS Atualizar” sobre a pasta desejada </li></ul></ul>cvs update Copyright © 2010 Misael Santos Gestão de Configuração de Software
  56. 56. Exercício 1 <ul><li>Gere uma nova versão do seu arquivo </li></ul><ul><ul><li>Altere o seu arquivo na PRIMEIRA LINHA do arquivo </li></ul></ul><ul><ul><li>Consolide as alterações no repositório através da operação “CVS Gravar...” </li></ul></ul><ul><li>Visualize a árvore de versões do seu arquivo </li></ul><ul><ul><li>Execute a operação “CVS > Gráfico de Revisões...” sobre o seu arquivo </li></ul></ul>cvs commit, cvs log... Copyright © 2010 Misael Santos Gestão de Configuração de Software
  57. 57. Exercício 2 <ul><li>Altere a PRIMEIRA LINHA do arquivo do seu vizinho da esquerda e tente gravar as alterações </li></ul><ul><li>Visualize as diferenças entre a sua versão e a do servidor </li></ul><ul><ul><li>Execute a operação “CVS Diferenças” sobre o arquivo </li></ul></ul>cvs diff Copyright © 2010 Misael Santos Gestão de Configuração de Software
  58. 58. Exercício 2 <ul><li>Execute o comando de atualização </li></ul><ul><ul><li>Execute a operação “CVS Atualizar” no arquivo </li></ul></ul><ul><li>Resolva os conflitos de versões, caso existam </li></ul><ul><ul><li>Confirme a operação “ Resolver Conflito ” clicando na indicação do arquivo </li></ul></ul><ul><ul><li>Realize o Merge dos dois arquivos seguindo as instruções do WinMerge . </li></ul></ul><ul><li>Consolide as alterações (“ CVS Gravar” ) </li></ul>cvs update, cvs commit Copyright © 2010 Misael Santos Gestão de Configuração de Software
  59. 59. Exercício 3 <ul><li>JIRA x CVS ( Parte 1 ) </li></ul><ul><li>Acesse o JIRA: http://?????????????????8:8080 com o seu usuarioXX . </li></ul><ul><li>Crie uma Solicitação de Mudança para o seu vizinho da esquerda solicitando que ele altere algum arquivo. </li></ul><ul><li>Informe-lhe do ID de sua SM (ex: GCS-4) </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  60. 60. Exercício 3 <ul><li>JIRA x CVS ( Parte 2 ) </li></ul><ul><li>Verifique se foi criada uma SM pra você . </li></ul><ul><li>Coloque-a “Em Progresso” </li></ul><ul><li>IMPORTANTE: Altere o seu arquivo e no Comentário do Commit informe o número da SM </li></ul><ul><li>No JIRA atualize o status da sua SM para resolvida </li></ul><ul><li>Verifique na aba “Controle de Versão” da SM a associação criada a partir do seu comentário durante o commit no CVS </li></ul><ul><li>Quando a SM que você abriu para o seu colega for resolvida, finalize-a </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software
  61. 61. Referências <ul><li>PRESSMAN, R. S. Engenharia de Software , 6ª. ed., 2006. </li></ul><ul><li>HASS A. M. J. , Configuration Management Principles and Practice , Addison Wesley, 432p, 2002. </li></ul><ul><li>FREDERICKS T. Software Configuration and Integration Management , Marquette University, 2001. </li></ul><ul><li>BIRMELE C. Branching and Merging Primer , Visual Studio 2005 Technical Articles, 2006. </li></ul>Copyright © 2010 Misael Santos Gestão de Configuração de Software

×