• Like
Gerenciadores de Controle de Versão: Git, Mercurial e Bazaar
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

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

  • 3,948 views
Published

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

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

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,948
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
70
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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. 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. I – Conceitos básicos X http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/
  • 4. Histórico Centralizado 1990 2000 Distribuído 2005 16 Junho kernel 2.6.12
  • 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. Benefícios do Sistema Gerenciador de Controle de Versão (SCV) Manter histórico Colaboração Variações do projeto
  • 7. Arquitetura de um SCV Centralizado Adaptado de pronus.eng.br
  • 8. Operações básicas de um SCV Centralizado
  • 9. Operações básicas de um SCV CentralizadoCada commit cria uma nova revisão, números sequenciais
  • 10. Operações básicas de um SCV Centralizado
  • 11. Sincronização no SCV Centralizado Fonte: pronus.eng.br
  • 12. Problemas SCV centralizado
  • 13. Arquitetura de um SCV Distribuído Fonte: pronus.eng.br
  • 14. Operações Básicas de um SCV Distribuído Fonte: pronus.eng.br
  • 15. Sincronização no SCV Distribuído Fonte: pronus.eng.br
  • 16. II - SCV Distribuídos
  • 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. Projetos que utilizam o Git
  • 19. Hospedagemrepo.or.cz Savannah
  • 20. Workflow Básico
  • 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. 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. 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. 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. 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. Projetos que utilizam o Mercurial
  • 27. HospedagemSavannah
  • 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. 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. Projetos que utilizam o Bazaar
  • 31. HospedagemSavannah
  • 32. III - Comparação vshttp://en.wikipedia.org/wiki/Comparison_of_revision_control_software
  • 33. Git vs Hg vs Bzr: Velocidade http://pt.whygitisbetterthanx.com
  • 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. 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. 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. Git vs Hg vs Bzr – Implementação http://www.infoq.com/br/articles/dvcs-guide
  • 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)