SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
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/2012
By Igor F. Steinmacher, Igor S. Wiese, Ivanilton Polato. These slides are licensed under the
Attibution-ShareAlike 3.0 Brasil License (CC BY-SA 3.0)
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
I – Conceitos básicos




                X

      http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/
Histórico
                            Centralizado


 1990



 2000


                              Distribuído

 2005



              16 Junho
            kernel 2.6.12
CVS




        Dick Grune                                Karl Fogel
           Criador                             Líder do projeto SVN
Outras fontes de informação

CVS
• http://cvs.nongnu.org/
• http://en.wikipedia.org/wiki/Concurrent_Versions_System

Subversion
• http://subversion.apache.org/
• http://wiki.apache.org/subversion/
• http://en.wikipedia.org/wiki/SVN
Benefícios do Sistema Gerenciador
   de Controle de Versão (SCV)




  Manter histórico      Colaboração




          Variações do projeto
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 Centralizado




Cada 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            Mantenedor



Outras 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
Projetos que utilizam o Git
Hospedagem



repo.or.cz




  Savannah
Workflow Básico
Comandos Básicos
1. git clone URL (= checkout SVN)
  • Clona um repositório
2. 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 branch
3. 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
Comandos Básicos
4. 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 –a
5. 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.
Comandos Básicos
7. 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
Comandos Básicos
8. 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.
Matt Mackall                         Release 1 janeiro
      Criador e Mantenedor


Outras 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
Projetos que utilizam o Mercurial
Hospedagem




Savannah
Comandos Básicos
1. hg clone REPOSITORIO
  • Clona um projeto para o repositório local
2. hg add ARQUIVO
  • Adiciona um arquivo no repositório local
3. hg commit –m “MENSAGEM”
  • Efetiva e documenta alterações
4. hg branch NOME_BRANCH
  • Cria um branch
5. hg push
  • Publica modificações locais para outro repositório
6. 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 principal
8. hg merge
  • Mescla as alterções de um Branch com outro.
27/10/2011
                                            20/01/2012



              Martin Pool
           Criador e Mantenedor

Outras fontes de informação:
• http://bazaar.canonical.com/en/
• http://wiki.bazaar.canonical.com/Documentation
• http://en.wikipedia.org/wiki/Bazaar_%28software%29
                                                         V2
Projetos que utilizam o Bazaar
Hospedagem




Savannah
III - Comparação



               vs

http://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 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,600
1,000                                         4,000                                                                                    0,100
                                                                                           0,400
0,500                                         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



                                                         Testes realizados por Igor F. Steimacher, Igor S. Wiese e Ivanilton Polato em 01/02/2012
Git vs Hg vs Bzr:
Tamanho do Repositório


                         Bzr* depois de rodar o Bzr pack

Git vs Hg vs Bzr:
                             http://pt.whygitisbetterthanx.com




Tempo de Clone



                         SVN compardo com o checkout
                             http://pt.whygitisbetterthanx.com
Git vs Hg vs Bzr: Tamanho do
Repositório e Tempo de Clone
               clone local                                                tamanho
70,000                                               250000


60,000
                                                     200000

50,000


                                                     150000
40,000


30,000
                                                     100000


20,000

                                                      50000
10,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
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 the
Attibution-ShareAlike 3.0 Brasil License (CC BY-SA 3.0)

Más contenido relacionado

La actualidad más candente

Estatuto do aluno e ética escolar
Estatuto do aluno e ética escolarEstatuto do aluno e ética escolar
Estatuto do aluno e ética escolaroctavioinacio
 
Aula Hidrologia - Método Racional
Aula Hidrologia - Método RacionalAula Hidrologia - Método Racional
Aula Hidrologia - Método RacionalLucas Sant'ana
 
¦Lgebra linear 02 aula 01-02-produto vetorial
¦Lgebra linear 02 aula 01-02-produto vetorial¦Lgebra linear 02 aula 01-02-produto vetorial
¦Lgebra linear 02 aula 01-02-produto vetorialPedro Povoleri
 
06 tensoes no solo ojo-ejercicios
06 tensoes no solo ojo-ejercicios06 tensoes no solo ojo-ejercicios
06 tensoes no solo ojo-ejerciciosEsteban Caballero
 
Fundamentos da teoria do consumidor1
Fundamentos da teoria do consumidor1Fundamentos da teoria do consumidor1
Fundamentos da teoria do consumidor1Hélen Scalabrin
 
PDDE - PRESTANDO CONTAS - Prof. Noe Assunção
PDDE - PRESTANDO CONTAS - Prof. Noe AssunçãoPDDE - PRESTANDO CONTAS - Prof. Noe Assunção
PDDE - PRESTANDO CONTAS - Prof. Noe AssunçãoProf. Noe Assunção
 
Aula 7 - Fundamentos de Custos e Métodos de Custeio
Aula 7 - Fundamentos de Custos e Métodos de CusteioAula 7 - Fundamentos de Custos e Métodos de Custeio
Aula 7 - Fundamentos de Custos e Métodos de CusteioMestredaContabilidade
 
Exercicios resolvidos -_hidraulica_basic
Exercicios resolvidos -_hidraulica_basicExercicios resolvidos -_hidraulica_basic
Exercicios resolvidos -_hidraulica_basicGerson Justino
 
Problemas selecionados de eletricidade - PROFESSOR HELANDERSON SOUSA
Problemas selecionados de eletricidade - PROFESSOR HELANDERSON SOUSAProblemas selecionados de eletricidade - PROFESSOR HELANDERSON SOUSA
Problemas selecionados de eletricidade - PROFESSOR HELANDERSON SOUSADayanne Sousa
 
Aula 4. balanço de massa com reação química
Aula 4. balanço de massa com reação químicaAula 4. balanço de massa com reação química
Aula 4. balanço de massa com reação químicaLéyah Matheus
 
7 lancamento horizontal
7  lancamento horizontal7  lancamento horizontal
7 lancamento horizontaldaniela pinto
 
MANUAL DE PAVIMENTAÇÃO ASFÁLTICA - PRO ASFALTO
MANUAL DE PAVIMENTAÇÃO ASFÁLTICA - PRO ASFALTOMANUAL DE PAVIMENTAÇÃO ASFÁLTICA - PRO ASFALTO
MANUAL DE PAVIMENTAÇÃO ASFÁLTICA - PRO ASFALTOssuser3024e5
 

La actualidad más candente (20)

Estatuto do aluno e ética escolar
Estatuto do aluno e ética escolarEstatuto do aluno e ética escolar
Estatuto do aluno e ética escolar
 
Inflacao
InflacaoInflacao
Inflacao
 
Aula Hidrologia - Método Racional
Aula Hidrologia - Método RacionalAula Hidrologia - Método Racional
Aula Hidrologia - Método Racional
 
¦Lgebra linear 02 aula 01-02-produto vetorial
¦Lgebra linear 02 aula 01-02-produto vetorial¦Lgebra linear 02 aula 01-02-produto vetorial
¦Lgebra linear 02 aula 01-02-produto vetorial
 
06 tensoes no solo ojo-ejercicios
06 tensoes no solo ojo-ejercicios06 tensoes no solo ojo-ejercicios
06 tensoes no solo ojo-ejercicios
 
Fundamentos da teoria do consumidor1
Fundamentos da teoria do consumidor1Fundamentos da teoria do consumidor1
Fundamentos da teoria do consumidor1
 
PDDE - PRESTANDO CONTAS - Prof. Noe Assunção
PDDE - PRESTANDO CONTAS - Prof. Noe AssunçãoPDDE - PRESTANDO CONTAS - Prof. Noe Assunção
PDDE - PRESTANDO CONTAS - Prof. Noe Assunção
 
Captação e Adutoras
Captação e AdutorasCaptação e Adutoras
Captação e Adutoras
 
Aula 5 aeração
Aula 5   aeraçãoAula 5   aeração
Aula 5 aeração
 
Aula 7 - Fundamentos de Custos e Métodos de Custeio
Aula 7 - Fundamentos de Custos e Métodos de CusteioAula 7 - Fundamentos de Custos e Métodos de Custeio
Aula 7 - Fundamentos de Custos e Métodos de Custeio
 
Apostila alunos dreanagem
Apostila alunos dreanagemApostila alunos dreanagem
Apostila alunos dreanagem
 
Obtenção de hidrogenio
Obtenção de hidrogenioObtenção de hidrogenio
Obtenção de hidrogenio
 
Exercicios resolvidos -_hidraulica_basic
Exercicios resolvidos -_hidraulica_basicExercicios resolvidos -_hidraulica_basic
Exercicios resolvidos -_hidraulica_basic
 
Problemas selecionados de eletricidade - PROFESSOR HELANDERSON SOUSA
Problemas selecionados de eletricidade - PROFESSOR HELANDERSON SOUSAProblemas selecionados de eletricidade - PROFESSOR HELANDERSON SOUSA
Problemas selecionados de eletricidade - PROFESSOR HELANDERSON SOUSA
 
Aula 4. balanço de massa com reação química
Aula 4. balanço de massa com reação químicaAula 4. balanço de massa com reação química
Aula 4. balanço de massa com reação química
 
7 lancamento horizontal
7  lancamento horizontal7  lancamento horizontal
7 lancamento horizontal
 
MANUAL DE PAVIMENTAÇÃO ASFÁLTICA - PRO ASFALTO
MANUAL DE PAVIMENTAÇÃO ASFÁLTICA - PRO ASFALTOMANUAL DE PAVIMENTAÇÃO ASFÁLTICA - PRO ASFALTO
MANUAL DE PAVIMENTAÇÃO ASFÁLTICA - PRO ASFALTO
 
1 aula 6 aducao
1 aula 6   aducao1 aula 6   aducao
1 aula 6 aducao
 
4 cinematica dos fluidos exercícios
4 cinematica dos fluidos exercícios4 cinematica dos fluidos exercícios
4 cinematica dos fluidos exercícios
 
Ntc 900600 copel
Ntc 900600 copelNtc 900600 copel
Ntc 900600 copel
 

Destacado

Introdução ao Git
Introdução ao GitIntrodução ao Git
Introdução ao GitUSP
 
XXXI JAI - Apache Hadoop: conceitos teóricos e práticos, evolução e novas pos...
XXXI JAI - Apache Hadoop: conceitos teóricos e práticos, evolução e novas pos...XXXI JAI - Apache Hadoop: conceitos teóricos e práticos, evolução e novas pos...
XXXI JAI - Apache Hadoop: conceitos teóricos e práticos, evolução e novas pos...Ivanilton Polato
 
Git - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotadoGit - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotadoWilliam Lima
 
GCS - Aula 02 - Conceitos Principais
GCS - Aula 02 - Conceitos PrincipaisGCS - Aula 02 - Conceitos Principais
GCS - Aula 02 - Conceitos PrincipaisMisael Santos
 
Controle de Mudanças com GitHub
Controle de Mudanças com GitHubControle de Mudanças com GitHub
Controle de Mudanças com GitHubBruno Furtado
 
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataformaWine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataformaPaulo César M Jeveaux
 
Joomla!Day Brasil 2008 - FláVio Kubota - Gsoc Version Control
Joomla!Day Brasil 2008 - FláVio Kubota - Gsoc Version ControlJoomla!Day Brasil 2008 - FláVio Kubota - Gsoc Version Control
Joomla!Day Brasil 2008 - FláVio Kubota - Gsoc Version ControlJoomla!Day Brasil
 
Apresentação do SAEO na Administração Pública
Apresentação do SAEO na Administração PúblicaApresentação do SAEO na Administração Pública
Apresentação do SAEO na Administração PúblicaMarco Rosner
 
GCS - Aula 09 - GCS Ágil
GCS - Aula 09 - GCS ÁgilGCS - Aula 09 - GCS Ágil
GCS - Aula 09 - GCS ÁgilMisael Santos
 
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVNControle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVNFelipe Queiroz
 
[Mini-curso] Sistema de Controle de Versão
[Mini-curso] Sistema de Controle de Versão[Mini-curso] Sistema de Controle de Versão
[Mini-curso] Sistema de Controle de VersãoMarco Rosner
 
Transformando a experiência dos times de DEV, OPS & BIZ nos Sistemas Financei...
Transformando a experiência dos times de DEV, OPS & BIZ nos Sistemas Financei...Transformando a experiência dos times de DEV, OPS & BIZ nos Sistemas Financei...
Transformando a experiência dos times de DEV, OPS & BIZ nos Sistemas Financei...especificacoes.com
 
Introdução ao Sistema de Controle de Versão
Introdução ao Sistema de Controle de VersãoIntrodução ao Sistema de Controle de Versão
Introdução ao Sistema de Controle de VersãoFernando Machado
 
Workshop sistema de versionamento de código - git
Workshop  sistema de versionamento de código - gitWorkshop  sistema de versionamento de código - git
Workshop sistema de versionamento de código - gitThiago Filadelfo
 
QConSP: Vivenciando dev ops para além da automação de infraestrutura
QConSP: Vivenciando dev ops para além da automação de infraestruturaQConSP: Vivenciando dev ops para além da automação de infraestrutura
QConSP: Vivenciando dev ops para além da automação de infraestruturaDiego Pacheco
 

Destacado (20)

Introdução ao Git
Introdução ao GitIntrodução ao Git
Introdução ao Git
 
Controle de versão e colaboração com Git
Controle de versão e colaboração com GitControle de versão e colaboração com Git
Controle de versão e colaboração com Git
 
Creative Commons
Creative CommonsCreative Commons
Creative Commons
 
XXXI JAI - Apache Hadoop: conceitos teóricos e práticos, evolução e novas pos...
XXXI JAI - Apache Hadoop: conceitos teóricos e práticos, evolução e novas pos...XXXI JAI - Apache Hadoop: conceitos teóricos e práticos, evolução e novas pos...
XXXI JAI - Apache Hadoop: conceitos teóricos e práticos, evolução e novas pos...
 
Git - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotadoGit - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotado
 
Seminário Hadoop
Seminário HadoopSeminário Hadoop
Seminário Hadoop
 
GCS - Aula 02 - Conceitos Principais
GCS - Aula 02 - Conceitos PrincipaisGCS - Aula 02 - Conceitos Principais
GCS - Aula 02 - Conceitos Principais
 
Controle de Mudanças com GitHub
Controle de Mudanças com GitHubControle de Mudanças com GitHub
Controle de Mudanças com GitHub
 
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataformaWine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
 
Joomla!Day Brasil 2008 - FláVio Kubota - Gsoc Version Control
Joomla!Day Brasil 2008 - FláVio Kubota - Gsoc Version ControlJoomla!Day Brasil 2008 - FláVio Kubota - Gsoc Version Control
Joomla!Day Brasil 2008 - FláVio Kubota - Gsoc Version Control
 
Apresentação do SAEO na Administração Pública
Apresentação do SAEO na Administração PúblicaApresentação do SAEO na Administração Pública
Apresentação do SAEO na Administração Pública
 
GCS - Aula 09 - GCS Ágil
GCS - Aula 09 - GCS ÁgilGCS - Aula 09 - GCS Ágil
GCS - Aula 09 - GCS Ágil
 
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVNControle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
 
Controle de versão com GIT
Controle de versão com GITControle de versão com GIT
Controle de versão com GIT
 
[Mini-curso] Sistema de Controle de Versão
[Mini-curso] Sistema de Controle de Versão[Mini-curso] Sistema de Controle de Versão
[Mini-curso] Sistema de Controle de Versão
 
Transformando a experiência dos times de DEV, OPS & BIZ nos Sistemas Financei...
Transformando a experiência dos times de DEV, OPS & BIZ nos Sistemas Financei...Transformando a experiência dos times de DEV, OPS & BIZ nos Sistemas Financei...
Transformando a experiência dos times de DEV, OPS & BIZ nos Sistemas Financei...
 
Introdução ao Sistema de Controle de Versão
Introdução ao Sistema de Controle de VersãoIntrodução ao Sistema de Controle de Versão
Introdução ao Sistema de Controle de Versão
 
Workshop sistema de versionamento de código - git
Workshop  sistema de versionamento de código - gitWorkshop  sistema de versionamento de código - git
Workshop sistema de versionamento de código - git
 
QConSP: Vivenciando dev ops para além da automação de infraestrutura
QConSP: Vivenciando dev ops para além da automação de infraestruturaQConSP: Vivenciando dev ops para além da automação de infraestrutura
QConSP: Vivenciando dev ops para além da automação de infraestrutura
 
Alm open source
Alm open sourceAlm open source
Alm open source
 

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

Git workshop
Git workshopGit workshop
Git workshopYuri Reis
 
Desenvolvimento organizado com VCS
Desenvolvimento organizado com VCSDesenvolvimento organizado com VCS
Desenvolvimento organizado com VCSyogarine
 
Começando com Git
Começando com GitComeçando com Git
Começando com GitDaniel Costa
 
Escalando e otimizando sistemas legados
Escalando e otimizando sistemas legadosEscalando e otimizando sistemas legados
Escalando e otimizando sistemas legadosNelson Haraguchi
 
Git that like a boss: UFRGS
Git that like a boss: UFRGSGit that like a boss: UFRGS
Git that like a boss: UFRGSEvandro Eisinger
 
Introdução ao git
Introdução ao gitIntrodução ao git
Introdução ao gitDiogo Gomes
 
Ruby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviçosRuby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviçosBruno Ghisi
 
Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues
Planejamento de capacidade em ambiente virtualizado, por Bruno DominguesPlanejamento de capacidade em ambiente virtualizado, por Bruno Domingues
Planejamento de capacidade em ambiente virtualizado, por Bruno DominguesJoao Galdino Mello de Souza
 
GIT - Gerenciamento de Projeto e Versionamento Semântico
GIT - Gerenciamento de Projeto e Versionamento SemânticoGIT - Gerenciamento de Projeto e Versionamento Semântico
GIT - Gerenciamento de Projeto e Versionamento SemânticoDjanilson Alves
 
Apresentação Bazaar
Apresentação BazaarApresentação Bazaar
Apresentação BazaarBruno Furtado
 
Processo de desenvolvimento na samba
Processo de desenvolvimento na sambaProcesso de desenvolvimento na samba
Processo de desenvolvimento na sambajoaogmaciel
 

Similar a Gerenciadores de Controle de Versão: Git, Mercurial e Bazaar (20)

Git workshop
Git workshopGit workshop
Git workshop
 
Desenvolvimento organizado com VCS
Desenvolvimento organizado com VCSDesenvolvimento organizado com VCS
Desenvolvimento organizado com VCS
 
Começando com Git
Começando com GitComeçando com Git
Começando com Git
 
Git e GitHub - Conceitos Básicos
Git e GitHub - Conceitos BásicosGit e GitHub - Conceitos Básicos
Git e GitHub - Conceitos Básicos
 
Ferramenta git
Ferramenta gitFerramenta git
Ferramenta git
 
Oficina de Git EEDACT2015
Oficina de Git EEDACT2015Oficina de Git EEDACT2015
Oficina de Git EEDACT2015
 
Git 101
Git 101Git 101
Git 101
 
Escalando e otimizando sistemas legados
Escalando e otimizando sistemas legadosEscalando e otimizando sistemas legados
Escalando e otimizando sistemas legados
 
Git para quem vem do SVN
Git para quem vem do SVNGit para quem vem do SVN
Git para quem vem do SVN
 
Gerenciando projetos com Git e GitHub
Gerenciando projetos com Git e GitHubGerenciando projetos com Git e GitHub
Gerenciando projetos com Git e GitHub
 
Git that like a boss: UFRGS
Git that like a boss: UFRGSGit that like a boss: UFRGS
Git that like a boss: UFRGS
 
Git e GitHub
Git e GitHubGit e GitHub
Git e GitHub
 
Introdução ao git
Introdução ao gitIntrodução ao git
Introdução ao git
 
Ruby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviçosRuby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviços
 
Introdução ao Git
Introdução ao GitIntrodução ao Git
Introdução ao Git
 
Django no iis7
Django no iis7Django no iis7
Django no iis7
 
Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues
Planejamento de capacidade em ambiente virtualizado, por Bruno DominguesPlanejamento de capacidade em ambiente virtualizado, por Bruno Domingues
Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues
 
GIT - Gerenciamento de Projeto e Versionamento Semântico
GIT - Gerenciamento de Projeto e Versionamento SemânticoGIT - Gerenciamento de Projeto e Versionamento Semântico
GIT - Gerenciamento de Projeto e Versionamento Semântico
 
Apresentação Bazaar
Apresentação BazaarApresentação Bazaar
Apresentação Bazaar
 
Processo de desenvolvimento na samba
Processo de desenvolvimento na sambaProcesso de desenvolvimento na samba
Processo de desenvolvimento na samba
 

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

  • 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/2012 By Igor F. Steinmacher, Igor S. Wiese, Ivanilton Polato. These slides are licensed under the Attibution-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 SVN Outras fontes de informação CVS • http://cvs.nongnu.org/ • http://en.wikipedia.org/wiki/Concurrent_Versions_System Subversion • 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 Centralizado Cada 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
  • 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 Mantenedor Outras 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
  • 21. Comandos Básicos 1. git clone URL (= checkout SVN) • Clona um repositório 2. 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 branch 3. 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ásicos 4. 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 –a 5. 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ásicos 7. 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ásicos 8. 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.
  • 26. Matt Mackall Release 1 janeiro Criador e Mantenedor Outras 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
  • 27. Projetos que utilizam o Mercurial
  • 29. Comandos Básicos 1. hg clone REPOSITORIO • Clona um projeto para o repositório local 2. hg add ARQUIVO • Adiciona um arquivo no repositório local 3. hg commit –m “MENSAGEM” • Efetiva e documenta alterações 4. hg branch NOME_BRANCH • Cria um branch 5. hg push • Publica modificações locais para outro repositório 6. 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 principal 8. hg merge • Mescla as alterções de um Branch com outro.
  • 30.
  • 31. 27/10/2011 20/01/2012 Martin Pool Criador e Mantenedor Outras fontes de informação: • http://bazaar.canonical.com/en/ • http://wiki.bazaar.canonical.com/Documentation • http://en.wikipedia.org/wiki/Bazaar_%28software%29 V2
  • 34.
  • 35. III - Comparação vs http://en.wikipedia.org/wiki/Comparison_of_revision_control_software
  • 36. Git vs Hg vs Bzr: Velocidade http://pt.whygitisbetterthanx.com
  • 37. 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,600 1,000 4,000 0,100 0,400 0,500 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 Testes realizados por Igor F. Steimacher, Igor S. Wiese e Ivanilton Polato em 01/02/2012
  • 38. Git vs Hg vs Bzr: Tamanho do Repositório Bzr* depois de rodar o Bzr pack Git vs Hg vs Bzr: http://pt.whygitisbetterthanx.com Tempo de Clone SVN compardo com o checkout http://pt.whygitisbetterthanx.com
  • 39. Git vs Hg vs Bzr: Tamanho do Repositório e Tempo de Clone clone local tamanho 70,000 250000 60,000 200000 50,000 150000 40,000 30,000 100000 20,000 50000 10,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
  • 40. Git vs Hg vs Bzr – Implementação http://www.infoq.com/br/articles/dvcs-guide
  • 41. Dúvidas? By Igor Wiese, Igor Steinmacher, Ivanilton Polato. These slides are licensed under the Attibution-ShareAlike 3.0 Brasil License (CC BY-SA 3.0)