Cepug 06/12/2008 Maykon - Sistemas de Controle De Versão

967 visualizações

Publicada em

Primeira apresentação que faço, então perdoem as falhas e deficiências que encontrarem :/

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
967
No SlideShare
0
A partir de incorporações
0
Número de incorporações
19
Ações
Compartilhamentos
0
Downloads
33
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Cepug 06/12/2008 Maykon - Sistemas de Controle De Versão

  1. 1. Ferramentas de Controle de Versão Arian Maykon de Araújo Diógenes
  2. 2. O que é? <ul><ul><li>Ferramenta de gestão de código fonte; </li></ul></ul><ul><ul><li>Armazenamento centralizado (ou distribuído como veremos) de arquivos; </li></ul></ul><ul><ul><li>Mantém um histórico das alterações dos arquivos (Quem, o que e quando alterou); </li></ul></ul><ul><ul><li>Possibilita o trabalho concorrente de várias pessoas em um ou mais projetos; </li></ul></ul>
  3. 3. Porque usar? <ul><ul><li>Funciona como backup incremental contínuo; </li></ul></ul><ul><ul><li>Possibilita recuperação de códigos antigos, versões passadas, de outros releases, etc; </li></ul></ul><ul><ul><li>Desenvolvimento distribuído; </li></ul></ul><ul><ul><li>Versionamento de projeto/sistema. Podemos usar as tags e branchs para separar versões/releases diferentes de um sistema; </li></ul></ul>
  4. 4. Definições
  5. 5. Tipos de sistemas de controle de versão <ul><ul><li>Centralizado: </li></ul></ul><ul><ul><ul><li>CVS; </li></ul></ul></ul><ul><ul><ul><li>SVN/Subversion; </li></ul></ul></ul><ul><ul><ul><li>VSS – Visual Source Safe (Microsoft); </li></ul></ul></ul><ul><ul><li>Distribuído: </li></ul></ul><ul><ul><ul><li>Git; </li></ul></ul></ul><ul><ul><ul><li>Bazzar; </li></ul></ul></ul><ul><ul><ul><li>Mercurial; </li></ul></ul></ul><ul><ul><ul><li>Monotone; </li></ul></ul></ul>
  6. 6. Tipos de desenvolvimento <ul><ul><li>Um usuário; </li></ul></ul><ul><ul><li>Equipe; </li></ul></ul><ul><ul><ul><li>Cópia de arquivos individual; </li></ul></ul></ul><ul><ul><ul><li>Cópia de arquivos comum; </li></ul></ul></ul>
  7. 7. Um usuário - Problemas <ul><ul><li>Não possui uma maneira fácil de recuperar uma versão anterior do arquivo por data; </li></ul></ul><ul><ul><li>Não possui uma maneira fácil de comparar diferenças entre uma versão anterior e a atual; </li></ul></ul>
  8. 8. Equipe Desenvolvimento com cópia individual Usuário 1 Usuário 2 Usuário 3 Computador 1 Computador 2 Computador 3 Servidor
  9. 9. Equipe Desenvolvimento com cópia individual – Problemas <ul><li>Não há uma maneira fácil unificar os arquivos modificados do projeto entre as várias cópias dos desenvolvedores; </li></ul><ul><li>Não há uma maneira fácil de recuperar uma versão antiga de um arquivo por data ou desenvolvedor; </li></ul>
  10. 10. Equipe Desenvolvimento com cópia comum Usuário 1 Usuário 2 Usuário 3 Servidor
  11. 11. Equipe Desenvolvimento com cópia comum – Problemas <ul><li>Tráfego de rede e carga do servidor; </li></ul><ul><li>Fraca performance; </li></ul><ul><li>Não há maneira fácil de recuperar uma versão anterior de arquivo por data ou usuário; </li></ul><ul><li>Não há uma maneira fácil de visualizar diferenças entre versões anteriores e atuais de arquivos; </li></ul>
  12. 12. Sumário de Problemas <ul><li>Não há uma maneira fácil de recuperar versões antigas de arquivos por data ou usuário; </li></ul><ul><li>Não há uma maneira fácil de verificar diferenças entre versões diferentes de arquivos; </li></ul><ul><li>Processo de união dos arquivos (merge) manual, duvidoso, complexo e que consome muito tempo; </li></ul><ul><li>Diminui a performance do fluxo de desenvolvimento; </li></ul>
  13. 13. Um usuário <?php $con = mysql(...; $result = mysql_query(...; arquivo.php <?php $con = mysql(...; arquivo.php Ontem Hoje - manhã Versão-1 Versão-2 Versão-3 <?php $con = mysql(...; $result = mysql_query(...; for(...; arquivo.php Hoje - tarde
  14. 14. Ambiente multi usuário Cópias individuais Cópia de trabalho #1 do repositório Servidor (Repositório central)‏ Cópia de trabalho #2 do repositório Cópia de trabalho #3 do repositório Commit para o repositório Checkout do repositório central Update do repositório Usuário 3 Usuário 2 Usuário 1
  15. 15. Dúvidas?
  16. 16. Obrigado!

×