Controle de Versão
       svn || git
Há muito tempo atrás, em uma galáxia distante...

           while (true) {
             echo “Kung Lao wins”;
           }




                   alexandre_loser.php

                                              .
                    alexandre_loser20050101 tar.gz

                                         while (true) {
                                           echo “Kung Lao wins...Fatality”;
                                         }


                                            alexandre_loser.php

                                             alexandre_loser20050102 tar.gz   .
Sistema de Controle de Versão
            (VCS)
            (VCS)
Sistema de Controle de Versão
                               Repositório

        alexandre_loser.php



A                                            alexandre_loser.php {v1}
                                             alexandre_loser.php {v2}
                                             ...
                                             alexandre_loser.php {vn}



         alexandre_loser.php



B
Concurrent Version System

       CVSanos 90
• Não é distribuído*
• Eternos bugs
                 CVS
• Lock em arquivos
Ctrl+C Ctrl+V CVS

• ClearCase
• PVCS
• VSS (Visual Source Safe)
• PerForce
Subversion
  “CVS Done Right”
Subversion“cvs done right”
                          “cvs done right”


•   Corrigiu os bugs do CVS

•   Atômico

•   Renomear, Copiar, Mover e Deletar

•   Merge

•   Bibliotecas clients
SVN é o projeto mais sem sentido que já foi
        iniciado...




Linus Torvalds
em 2007


GIT
SVN x GIT
SVN herdou a lerdeza do CVS...

        svn update | svn log | svn commit... svn *




          GIT é rápido....repositório local
SVN não é distribuído...

                                      log

               diff




             commit
                                            update




                      Avisa o Junior e...
GIT é distribuído...
                                                  status



                                           .git

                                    push
                   .git


          commit
                                 pull




                                                       .git
          diff                                                add


                          .git




                   Todo o repositório é local
mais vantagens...


                    repositório local


                                 todo controle
                                   OFFLINE
Branches no git são mais intuitivos...

git checkout -b A
       svn copy /srv/repos/trunk
       /srv/repos/branches/A;
       svn checkout
       /srv/repos/branches/A
       /local/branches/A
GIT tem uma área intermediária




só faz commit dos arquivos adicionados na área
o core do LINUX é
  controlado por GIT

               o RAILS é controlado por GIT
o CAKEPHP é controlado por
          GIT
                 o ZEND FRAMEWORK é
                    controlado por GIT
o NODE.JS é controlado por
           GIT
                     por quê não o Youppie?
Dúvidas?

Controle de Versão GIT

  • 1.
  • 2.
    Há muito tempoatrás, em uma galáxia distante... while (true) { echo “Kung Lao wins”; } alexandre_loser.php . alexandre_loser20050101 tar.gz while (true) { echo “Kung Lao wins...Fatality”; } alexandre_loser.php alexandre_loser20050102 tar.gz .
  • 3.
    Sistema de Controlede Versão (VCS) (VCS)
  • 4.
    Sistema de Controlede Versão Repositório alexandre_loser.php A alexandre_loser.php {v1} alexandre_loser.php {v2} ... alexandre_loser.php {vn} alexandre_loser.php B
  • 5.
  • 6.
    • Não édistribuído* • Eternos bugs CVS • Lock em arquivos
  • 7.
    Ctrl+C Ctrl+V CVS •ClearCase • PVCS • VSS (Visual Source Safe) • PerForce
  • 8.
    Subversion “CVSDone Right”
  • 9.
    Subversion“cvs done right” “cvs done right” • Corrigiu os bugs do CVS • Atômico • Renomear, Copiar, Mover e Deletar • Merge • Bibliotecas clients
  • 10.
    SVN é oprojeto mais sem sentido que já foi iniciado... Linus Torvalds
  • 11.
  • 12.
  • 13.
    SVN herdou alerdeza do CVS... svn update | svn log | svn commit... svn * GIT é rápido....repositório local
  • 14.
    SVN não édistribuído... log diff commit update Avisa o Junior e...
  • 16.
    GIT é distribuído... status .git push .git commit pull .git diff add .git Todo o repositório é local
  • 17.
    mais vantagens... repositório local todo controle OFFLINE
  • 18.
    Branches no gitsão mais intuitivos... git checkout -b A svn copy /srv/repos/trunk /srv/repos/branches/A; svn checkout /srv/repos/branches/A /local/branches/A
  • 19.
    GIT tem umaárea intermediária só faz commit dos arquivos adicionados na área
  • 20.
    o core doLINUX é controlado por GIT o RAILS é controlado por GIT o CAKEPHP é controlado por GIT o ZEND FRAMEWORK é controlado por GIT o NODE.JS é controlado por GIT por quê não o Youppie?
  • 21.