Controle de versão:        Git, Mercurial, Bazaar         Doutorado em Ciência da Computação    Disciplina de Software Liv...
Roteiro• Visão geral sobre controle de Versão  • Histórico  • Benefícios de um Sistema Gerenciador de Controle de Versão  ...
I – Conceitos básicos                X      http://betterexplained.com/articles/intro-to-distributed-version-control-illus...
Histórico                            Centralizado 1990 2000                              Distribuído 2005              16 ...
CVS        Dick Grune                                Karl Fogel           Criador                             Líder do pro...
Benefícios do Sistema Gerenciador   de Controle de Versão (SCV)  Manter histórico      Colaboração          Variações do p...
Arquitetura de um SCV Centralizado                            Adaptado de pronus.eng.br
Operações básicas de um   SCV Centralizado
Operações básicas de um   SCV CentralizadoCada commit cria uma nova revisão,       números sequenciais
Operações básicas de um   SCV Centralizado
Sincronização no SCV Centralizado                             Fonte: pronus.eng.br
Problemas SCV centralizado
Arquitetura de um SCV Distribuído                           Fonte: pronus.eng.br
Operações Básicas de um SCV        Distribuído                        Fonte: pronus.eng.br
Sincronização no SCV Distribuído                             Fonte: pronus.eng.br
II - SCV Distribuídos
Linus Torvalds       Junio Hamano           Criador            MantenedorOutras fontes de informação:•   http://git-scm.co...
Projetos que utilizam o Git
Hospedagemrepo.or.cz  Savannah
Workflow Básico
Comandos Básicos1. git clone URL (= checkout SVN)  • Clona um repositório2. git checkout -b NOME_BRANCH  • Cria um Branch....
Comandos Básicos4. git add NOME_ARQUIVO ou git add -i  • Neste caso é feito um commit parcial. Após estes comandos deve se...
Comandos Básicos7. git mergetool   git rebase --continue  • Quando o git não consegue resolver os conflitos, o “rebase” é ...
Comandos Básicos8. git checkout master   git merge BRANCH_LOCAL   git push origin master  • Quando o rebase é concluído se...
Matt Mackall                         Release 1 janeiro      Criador e MantenedorOutras fontes de informação:•   http://mer...
Projetos que utilizam o Mercurial
HospedagemSavannah
Comandos Básicos1. hg clone REPOSITORIO  • Clona um projeto para o repositório local2. hg add ARQUIVO  • Adiciona um arqui...
27/10/2011                                            20/01/2012              Martin Pool           Criador e MantenedorOu...
Projetos que utilizam o Bazaar
HospedagemSavannah
III - Comparação               vshttp://en.wikipedia.org/wiki/Comparison_of_revision_control_software
Git vs Hg vs Bzr: Velocidade                       http://pt.whygitisbetterthanx.com
Git vs Hg vs Bzr: Velocidade                       init                            add (1 arq.)                  add (2000...
Git vs Hg vs Bzr:Tamanho do Repositório                         Bzr* depois de rodar o Bzr packGit vs Hg vs Bzr:          ...
Git vs Hg vs Bzr: Tamanho doRepositório e Tempo de Clone               clone local                                        ...
Git vs Hg vs Bzr – Implementação                       http://www.infoq.com/br/articles/dvcs-guide
Dúvidas?By Igor Wiese, Igor Steinmacher, Ivanilton Polato. These slides are licensed under theAttibution-ShareAlike 3.0 Br...
Gerenciadores de Controle de Versão: Git, Mercurial e Bazaar
Gerenciadores de Controle de Versão: Git, Mercurial e Bazaar
Gerenciadores de Controle de Versão: Git, Mercurial e Bazaar
Próximos SlideShares
Carregando em…5
×

Gerenciadores de Controle de Versão: Git, Mercurial e Bazaar

5.172 visualizações

Publicada em

Apresentação apresentado e comparando os três controladores de versão: Git, Bazaar e Mercurial.

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

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

Nenhuma nota no slide

Gerenciadores de Controle de Versão: Git, Mercurial e Bazaar

  1. 1. Controle de versão: Git, Mercurial, Bazaar Doutorado em Ciência da Computação Disciplina de Software Livre, Prof. Dr. Fabio Kon DINTER IME/USP-UTFPR Fevereiro/2012By Igor F. Steinmacher, Igor S. Wiese, Ivanilton Polato. These slides are licensed under theAttibution-ShareAlike 3.0 Brasil License (CC BY-SA 3.0)
  2. 2. Roteiro• Visão geral sobre controle de Versão • Histórico • Benefícios de um Sistema Gerenciador de Controle de Versão • Diferenças entre Controle de Versão Central e Distribuído • Operações Básicas • Vocabulário comum• Git, Mercurial, Bazaar • Histórico • Principais recursos (especificidades) • Integração com outras ferramentas • Comparativo
  3. 3. I – Conceitos básicos X http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/
  4. 4. Histórico Centralizado 1990 2000 Distribuído 2005 16 Junho kernel 2.6.12
  5. 5. CVS Dick Grune Karl Fogel Criador Líder do projeto SVNOutras fontes de informaçãoCVS• http://cvs.nongnu.org/• http://en.wikipedia.org/wiki/Concurrent_Versions_SystemSubversion• http://subversion.apache.org/• http://wiki.apache.org/subversion/• http://en.wikipedia.org/wiki/SVN
  6. 6. Benefícios do Sistema Gerenciador de Controle de Versão (SCV) Manter histórico Colaboração Variações do projeto
  7. 7. Arquitetura de um SCV Centralizado Adaptado de pronus.eng.br
  8. 8. Operações básicas de um SCV Centralizado
  9. 9. Operações básicas de um SCV CentralizadoCada commit cria uma nova revisão, números sequenciais
  10. 10. Operações básicas de um SCV Centralizado
  11. 11. Sincronização no SCV Centralizado Fonte: pronus.eng.br
  12. 12. Problemas SCV centralizado
  13. 13. Arquitetura de um SCV Distribuído Fonte: pronus.eng.br
  14. 14. Operações Básicas de um SCV Distribuído Fonte: pronus.eng.br
  15. 15. Sincronização no SCV Distribuído Fonte: pronus.eng.br
  16. 16. II - SCV Distribuídos
  17. 17. Linus Torvalds Junio Hamano Criador MantenedorOutras fontes de informação:• http://git-scm.com/• http://book.git-scm.com/• https://git.wiki.kernel.org/• http://en.wikipedia.org/wiki/Git_%28software%29 V2
  18. 18. Projetos que utilizam o Git
  19. 19. Hospedagemrepo.or.cz Savannah
  20. 20. Workflow Básico
  21. 21. Comandos Básicos1. git clone URL (= checkout SVN) • Clona um repositório2. git checkout -b NOME_BRANCH • Cria um Branch. Uma das maiores vantagens do git é a facilidade de criar branches e mesclá-los posteriormente via merge • -b cria o branch • checkout, faz você trocar de branch3. git commit –a –m “MENSAGEM” • Como a ideia esta centrada na facilidade de merges e trabalho distribuído, todo o trabalho é feito localmente, e deve ser gravado localmente (commit) em pequenas porções • -a força o commit para TODOS os arquivos alterados • -m para adicionar a mensagem
  22. 22. Comandos Básicos4. git add NOME_ARQUIVO ou git add -i • Neste caso é feito um commit parcial. Após estes comandos deve ser feito um commit sem o parâmetro –a5. git checkout master git pull origin master • Na primeira vez for realizado o comando pull deve ser informado de onde (origin) e para onde (master).6. git checkout SEU_BRANCH git rebase master • Quando as atualizações são trazidas do master é preciso sincronizar com as mudaças locais. Estas operações removem temporariamente as modificações do seu branch, aplicam os commits que estavam no master e reaplicam seus commits.
  23. 23. Comandos Básicos7. git mergetool git rebase --continue • Quando o git não consegue resolver os conflitos, o “rebase” é interrompido. Conflitos são tratados individualmente, diferentemente do SVN que faz tudo de uma única vez. • -- continue é o parâmetro para continuar após cada conflito. • o mergetool é uma ferramenta visual de tratamento de conflitos. Existem várias disponíveis: • Meld: http://meld.sourceforge.net/install.html • Diffuse: http://diffuse.sourceforge.net/ • SourceGear: http://www.sourcegear.com/diffmerge/downloads.php
  24. 24. Comandos Básicos8. git checkout master git merge BRANCH_LOCAL git push origin master • Quando o rebase é concluído seu repositório local esta compatível com o master. • O comando git merge aplica seus commits no master. • Push envia as alterações para o servidor remoto.
  25. 25. Matt Mackall Release 1 janeiro Criador e MantenedorOutras fontes de informação:• http://mercurial.selenic.com/• http://mercurial.selenic.com/wiki/• http://en.wikipedia.org/wiki/Mercurial• http://hgbook.red-bean.com/read/ V2
  26. 26. Projetos que utilizam o Mercurial
  27. 27. HospedagemSavannah
  28. 28. Comandos Básicos1. hg clone REPOSITORIO • Clona um projeto para o repositório local2. hg add ARQUIVO • Adiciona um arquivo no repositório local3. hg commit –m “MENSAGEM” • Efetiva e documenta alterações4. hg branch NOME_BRANCH • Cria um branch5. hg push • Publica modificações locais para outro repositório6. hg pull • Sincroniza com outro repositório (local ou remoto)7. hg update • Atualiza a revisão local para a revisão do repositório principal8. hg merge • Mescla as alterções de um Branch com outro.
  29. 29. 27/10/2011 20/01/2012 Martin Pool Criador e MantenedorOutras fontes de informação:• http://bazaar.canonical.com/en/• http://wiki.bazaar.canonical.com/Documentation• http://en.wikipedia.org/wiki/Bazaar_%28software%29 V2
  30. 30. Projetos que utilizam o Bazaar
  31. 31. HospedagemSavannah
  32. 32. III - Comparação vshttp://en.wikipedia.org/wiki/Comparison_of_revision_control_software
  33. 33. Git vs Hg vs Bzr: Velocidade http://pt.whygitisbetterthanx.com
  34. 34. Git vs Hg vs Bzr: Velocidade init add (1 arq.) add (2000 arq.) diff 0,200 0,800 3,000 1,000 0,150 0,600 2,000 0,100 0,400 0,500 1,000 0,050 0,200 0,000 0,000 0,000 0,000 git bzr hg git bzr hg git bzr hg git bzr hg status (1 arq.) status (2000 arq.) log tag 10,000 0,800 6,000 0,150 0,600 4,000 0,100 5,000 0,400 2,000 0,050 0,200 0,000 0,000 0,000 0,000 git bzr hg git bzr hg git bzr hg git bzr hg commit (1 arq.) commit (2000 arq.) branch (frio) branch(quente)1,500 6,000 0,800 0,150 0,6001,000 4,000 0,100 0,4000,500 2,000 0,050 0,2000,000 0,000 0,000 0,000 git bzr hg git bzr hg git bzr hg git bzr hg Testes realizados por Igor F. Steimacher, Igor S. Wiese e Ivanilton Polato em 01/02/2012
  35. 35. Git vs Hg vs Bzr:Tamanho do Repositório Bzr* depois de rodar o Bzr packGit vs Hg vs Bzr: http://pt.whygitisbetterthanx.comTempo de Clone SVN compardo com o checkout http://pt.whygitisbetterthanx.com
  36. 36. Git vs Hg vs Bzr: Tamanho doRepositório e Tempo de Clone clone local tamanho70,000 25000060,000 20000050,000 15000040,00030,000 10000020,000 5000010,000 0,000 0 git bzr hg git bzr hg Testes realizados por Igor F. Steimacher, Igor S. Wiese e Ivanilton Polato em 01/02/2012
  37. 37. Git vs Hg vs Bzr – Implementação http://www.infoq.com/br/articles/dvcs-guide
  38. 38. Dúvidas?By Igor Wiese, Igor Steinmacher, Ivanilton Polato. These slides are licensed under theAttibution-ShareAlike 3.0 Brasil License (CC BY-SA 3.0)

×