Sistema de Controle de Versão




  Marco Rosner - marco.rosner@gmail.com
Sistema de Controle de Versão

 Quem sou?

 Marco Rosner

    ● Graduado em Sistemas de Informação
       pelo IFAL
    ● ...
Sistema de Controle de Versão


 Motivação

 Independente da sua área de atuação, em
 algum momento, você irá trabalhar co...
Sistema de Controle de Versão

 Importância

 - Compartilhamento de documentos e
 versionamento deles
 - Permitir trabalho...
Sistema de Controle de Versão



 Onde é aplicado o SCV?

 - Wikis (Foswiki, Wikipedia...)
 - Processadores de texto (Goog...
Sistema de Controle de Versão
 Agenda

 - Conceitos fundamentais
 - CVS – Concurrent Versioning System
    - O que é?
    ...
Sistema de Controle de Versão

 Agenda

 - GIT
    - O que é?
    - Comandos básicos
 - Referências*



 *Isso aquí é só o...
Sistema de Controle de Versão

 Conceitos Fundamentais

 - Repositório
    - Sistema de arquivo virtual

 - Compartilhando...
Sistema de Controle de Versão

 Conceitos Fundamentais

 - Solução 1: Lock-Modify-Unlock
   ●   Lock pode causar problemas...
Sistema de Controle de Versão

 Conceitos Fundamentais

 - Cópias de Trabalho (CT)

 - Revisões
  ●   calc/Makefile:2
    ...
Sistema de Controle de Versão

 Conceitos Fundamentais (Terminologia)

 - Check out/Clone
   ●   Cria uma CT do repositóri...
Sistema de Controle de Versão
 Conceitos Fundamentais




 - Como organizar sua cópia
  de trabalho?




[DF 4] Marco Rosn...
Sistema de Controle de Versão

 Ufa! Acabou a teoria, vamos à prática!!

 Mas antes! Vamos fazer uma revisão...

   - O qu...
Sistema de Controle de Versão




                     CVS
         Concurrent Versioning System




[DF 4] Marco Rosner -...
Sistema de Controle de Versão


 O que é?

 - Sistema centralizado
 - Open Source
 - O repositório pode ser local ou remot...
Sistema de Controle de Versão

Estrutura de um repositório

$ $CVSROOT/<arquivos>
          /CVSROOT/<arquivos_do_cvs>

Es...
Sistema de Controle de Versão

 Principais comandos

 Montando um repositório

 1 – Definir a localização e criar um repos...
Sistema de Controle de Versão

 Principais comandos

 Montando um repositório

 2 – Criar e importar documentos ao reposit...
Sistema de Controle de Versão


 Principais comandos

 Montando um repositório

 3 – Fazer um check-out

 $ mkdir ~/CopiaD...
Sistema de Controle de Versão

 Principais comandos

 Montando um repositório

 4 – Alterar e submeter documentos ao
 repo...
Sistema de Controle de Versão

 Principais comandos

 Montando um repositório

 5 – Vendo o log das últimas transações

 $...
Sistema de Controle de Versão




                    SVN

[DF 4] Marco Rosner - marco.rosner@gmail.com
Sistema de Controle de Versão

 O que é?

 - Criado pela CollabNet, em 2000
 - Baseado no CVS, também Open Source (APL)
 -...
Sistema de Controle de Versão
 Quem usa?

 - Apache Software Fundation
 - Free Pascal
 - FreeBSD
 - GCC
 - Python
 - Djang...
Sistema de Controle de Versão



 Características

 - Versionamento de diretórios
 - Histórico de versões efetivo
 - Commi...
Sistema de Controle de Versão



 URL's

 - file:///<servidor local>
 - http://<servidor>
 - https://<servidor>
 - svn://<...
Sistema de Controle de Versão

Estrutura do repositório

$ /repositorio/format
              /conf
              /db
     ...
Sistema de Controle de Versão

 Comandos básicos

 1 - Criando um repositório e importando arquivos

 $ svnadmin create ~/...
Sistema de Controle de Versão


 Comandos básicos

 2 – Dando um checkout

 $ mkdir ~/trabalhoSVN
 $ cd ~/trabalhoSVN
 $ s...
Sistema de Controle de Versão

 Comandos básicos

 3 – Alterando arquivo e submetendo ao
 repositório

 $ cd ~/trabalhoSVN...
Sistema de Controle de Versão
 Comandos básicos

 4 – Verificando o log

 $ cd ~/trabalhoSVN/projeto
 $ svn log teste.txt
...
Sistema de Controle de Versão

 Comandos úteis

 $ svn diff [-r[N:M]] <arquivo>
    - Mostra as diferenças entre a cópia d...
Sistema de Controle de Versão


 Arquivos em conflitos

 - arquivo.mine
 - arquivo.rOLDREV
 - arquivo.rNEWREV

 $ svn reso...
Sistema de Controle de Versão
 Conceitos avançados

 Propriedades

 - svn:autor
 - svn:date
 - svn:log

 $ svn propset <pr...
Sistema de Controle de Versão


 Conceitos avançados

 Travamento

 $ svn lock <arquivo>
 $ svn unlock <arquivo>

 $ svn c...
Sistema de Controle de Versão



 Conceitos avançados

 Ramos (Branches) e Tags

 $ svn copy SRC DSC
 $ svn merge -r REV1:...
Sistema de Controle de Versão

 Conceitos gerenciais

 Ganchos (hooks)

 $ cd ~/repositorioSVN/hooks

 - post-commit.tmpl
...
Sistema de Controle de Versão

 Conceitos gerenciais

 svnadmin

 $ svnadmin dump REPOS_PATH [-r rev1:rev2]
 [--incrementa...
Sistema de Controle de Versão


 Conceitos gerenciais

 svnadmin

 $ svnadmin setlog REPOS_PATH [-r rev] <arq>
 Define a m...
Sistema de Controle de Versão
 Conceitos gerenciais

 svnlook

 $ svnlook cat REPOS_PATH PATH_IN_REPOS
 Mostra o conteúdo ...
Sistema de Controle de Versão
 Conceitos gerenciais

 svnlook

 $ svnlook info REPOS_PATH
 Mostra o autor, data-hora, tama...
Sistema de Controle de Versão


Conceitos gerenciais

svnlook

$ svnlook proplist REPOS_PATH PATH_IN_REPOS
Exibe os nomes ...
Sistema de Controle de Versão




[DF 4] Marco Rosner - marco.rosner@gmail.com
Sistema de Controle de Versão

 O que é?

 - Criado por Linus Torvalds, em 2005
 - GIT = Estupido
 - Licenciado pela GPLv2...
Sistema de Controle de Versão
 Quem usa?

 - Android
 - Fedora
 - GNOME
 - Linux Kernel
 - One Laptop Per Child
 - Perl
 -...
Sistema de Controle de Versão


 Características

 - Desenvolvimento distribuído
 - Acesso ao repositorio por HTTP, FTP, r...
Sistema de Controle de Versão

 Comandos básicos

 1 – Criando o repositório e adicionando os
 arquivos do projeto

 $ mkd...
Sistema de Controle de Versão

 Comandos básicos

 2 – Verificando o status do projeto

 (editar arquivo)
 $ git status

 ...
Sistema de Controle de Versão
 Comandos básicos

 4 – Criando um branch

 $ git branch calc

 5 – Mudando de branch e efet...
Sistema de Controle de Versão



 Agradecimentos

 Obrigado pela sua presença neste mini-curso

 Qualquer dúvida, fico a d...
Sistema de Controle de Versão


 Referências bibliográficas

 CVS

 - http://www.nongnu.org/cvs/
 - http://en.wikipedia.or...
Sistema de Controle de Versão


 Referências bibliográficas

 SVN

 - http://subversion.tigris.org/
 - http://svnbook.red-...
Sistema de Controle de Versão


 Referências bibliográficas

 GIT

 - http://git-scm.com/
 - http://en.wikipedia.org/wiki/...
Upcoming SlideShare
Loading in …5
×

[Mini-curso] Sistema de Controle de Versão

5,150 views
5,042 views

Published on

Este mini-curso foi ministrado por Marco Rosner durante o Debian Festival 4.0

Published in: Education, Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,150
On SlideShare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
133
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

[Mini-curso] Sistema de Controle de Versão

  1. 1. Sistema de Controle de Versão Marco Rosner - marco.rosner@gmail.com
  2. 2. Sistema de Controle de Versão Quem sou? Marco Rosner ● Graduado em Sistemas de Informação pelo IFAL ● Técnico em Administração e Projeto de Redes pelo CET/IFAL ● Analista e desenvolvedor do SAEO ● Desenvolvedor do Brisa ● Amo perguntas! =) [DF 4] Marco Rosner - marco.rosner@gmail.com
  3. 3. Sistema de Controle de Versão Motivação Independente da sua área de atuação, em algum momento, você irá trabalhar com Sistema de Controle de Versão. E acredite, você já trabalha! Então, dominar este assunto é um diferencial competitivo necessário! [DF 4] Marco Rosner - marco.rosner@gmail.com
  4. 4. Sistema de Controle de Versão Importância - Compartilhamento de documentos e versionamento deles - Permitir trabalho em paralelo e controlar as modificações - Facilidade de aplicar manutenção e gerenciar a qualidade - Possibilidade de trabalhar em equipe (e agregar mais pessoas a equipe) [DF 4] Marco Rosner - marco.rosner@gmail.com
  5. 5. Sistema de Controle de Versão Onde é aplicado o SCV? - Wikis (Foswiki, Wikipedia...) - Processadores de texto (Google Docs...) - CMS (Joomla!, Drupal, Mambo, Plone...) - Projetos de softwares - Documentação de software [DF 4] Marco Rosner - marco.rosner@gmail.com
  6. 6. Sistema de Controle de Versão Agenda - Conceitos fundamentais - CVS – Concurrent Versioning System - O que é? - Principais comandos - Limitações - Subversion (SVN) - O que é? - Comandos básicos - Comandos avançados - Comandos gerenciais [DF 4] Marco Rosner - marco.rosner@gmail.com
  7. 7. Sistema de Controle de Versão Agenda - GIT - O que é? - Comandos básicos - Referências* *Isso aquí é só o começo! Preparem-se para estudar =) [DF 4] Marco Rosner - marco.rosner@gmail.com
  8. 8. Sistema de Controle de Versão Conceitos Fundamentais - Repositório - Sistema de arquivo virtual - Compartilhando documentos - Trabalho em equipe - Problema !!! - E agora José, a festa acabou? Calma, a festa ta apenas começando... [DF 4] Marco Rosner - marco.rosner@gmail.com
  9. 9. Sistema de Controle de Versão Conceitos Fundamentais - Solução 1: Lock-Modify-Unlock ● Lock pode causar problemas administrativos ● Locking pode causar serialização desnecessária - Solução 2: Copy-Modify-Merge [DF 4] Marco Rosner - marco.rosner@gmail.com
  10. 10. Sistema de Controle de Versão Conceitos Fundamentais - Cópias de Trabalho (CT) - Revisões ● calc/Makefile:2 integer.c:2 button.c:3 - Revisões Mistas ● Atualizações e Submissões são separadas. [DF 4] Marco Rosner - marco.rosner@gmail.com
  11. 11. Sistema de Controle de Versão Conceitos Fundamentais (Terminologia) - Check out/Clone ● Cria uma CT do repositório* - Update ● Atualiza uma CT com a última versão do repositório - Commit ● Ato de submeter as alterações feitas na CT para o repositório - Branch ● Conjunto de arquivos separados do mainstream do projeto para ser trabalhado separadamente. - Trunk ● Linha principal de trabalho do projeto [DF 4] Marco Rosner - marco.rosner@gmail.com
  12. 12. Sistema de Controle de Versão Conceitos Fundamentais - Como organizar sua cópia de trabalho? [DF 4] Marco Rosner - marco.rosner@gmail.com
  13. 13. Sistema de Controle de Versão Ufa! Acabou a teoria, vamos à prática!! Mas antes! Vamos fazer uma revisão... - O que é um repositório? - Quais as duas soluções para o compartilhamento de documentos? - Para que serve uma revisão? - Quais são os três comandos básicos de um CVS? - O que é um Branch? [DF 4] Marco Rosner - marco.rosner@gmail.com
  14. 14. Sistema de Controle de Versão CVS Concurrent Versioning System [DF 4] Marco Rosner - marco.rosner@gmail.com
  15. 15. Sistema de Controle de Versão O que é? - Sistema centralizado - Open Source - O repositório pode ser local ou remoto - As revisões começam em 1.1 - Permite tanto locking quanto merging - Possibilita criar branches - Sua atual versão é 1.12.12 [DF 4] Marco Rosner - marco.rosner@gmail.com
  16. 16. Sistema de Controle de Versão Estrutura de um repositório $ $CVSROOT/<arquivos> /CVSROOT/<arquivos_do_cvs> Estrutura da cópia de trabalho $ <CT>/<nome_do_repositorio>/<arquivos> /CVS/arquivosCVS [DF 4] Marco Rosner - marco.rosner@gmail.com
  17. 17. Sistema de Controle de Versão Principais comandos Montando um repositório 1 – Definir a localização e criar um repositório $ export CVSROOT=~/repositorio $ cvs init O diretorio indicado na variavel de ambiente $CVSROOT deve conceder premissão de leitura e escrita para todos que acessarão o repositório. [DF 4] Marco Rosner - marco.rosner@gmail.com
  18. 18. Sistema de Controle de Versão Principais comandos Montando um repositório 2 – Criar e importar documentos ao repositório $ mkdir ~/temp $ echo “Debian Festival” > ~/temp/teste.txt $ cd ~/temp $ cvs import -m “Importando documentos” projeto repositorio start [DF 4] Marco Rosner - marco.rosner@gmail.com
  19. 19. Sistema de Controle de Versão Principais comandos Montando um repositório 3 – Fazer um check-out $ mkdir ~/CopiaDeTrabalho $ cd ~/CopiaDeTrabalho $ cvs checkout projeto [DF 4] Marco Rosner - marco.rosner@gmail.com
  20. 20. Sistema de Controle de Versão Principais comandos Montando um repositório 4 – Alterar e submeter documentos ao repositório $ cd ~/CopiaDeTrabalho/projeto $ vim teste.txt $ cvs commit -m “Alteração do arquivo teste.txt” [DF 4] Marco Rosner - marco.rosner@gmail.com
  21. 21. Sistema de Controle de Versão Principais comandos Montando um repositório 5 – Vendo o log das últimas transações $ cd ~/CopiaDeTrabalho $ cvs update projeto $ cd projeto $ cvs log teste.txt [DF 4] Marco Rosner - marco.rosner@gmail.com
  22. 22. Sistema de Controle de Versão SVN [DF 4] Marco Rosner - marco.rosner@gmail.com
  23. 23. Sistema de Controle de Versão O que é? - Criado pela CollabNet, em 2000 - Baseado no CVS, também Open Source (APL) - Sistema centralizado - O repositório pode ser local ou remoto - Revisões incrementais - Permite tanto locking quanto merging - Possibilita criar branches e tags - Sua atual versão é 1.6.3 [DF 4] Marco Rosner - marco.rosner@gmail.com
  24. 24. Sistema de Controle de Versão Quem usa? - Apache Software Fundation - Free Pascal - FreeBSD - GCC - Python - Django - Mono - SourceForge.net - PHP - Google Code - BRisa [DF 4] Marco Rosner - marco.rosner@gmail.com
  25. 25. Sistema de Controle de Versão Características - Versionamento de diretórios - Histórico de versões efetivo - Commits atômico - Versionamento de metadados - Branch e Tag eficientes [DF 4] Marco Rosner - marco.rosner@gmail.com
  26. 26. Sistema de Controle de Versão URL's - file:///<servidor local> - http://<servidor> - https://<servidor> - svn://<servidor> - svn+ssh://<servidor> [DF 4] Marco Rosner - marco.rosner@gmail.com
  27. 27. Sistema de Controle de Versão Estrutura do repositório $ /repositorio/format /conf /db /hooks /locks Estrutura da CT $ /CT/projeto/Trunk /Branches /Tags [DF 4] Marco Rosner - marco.rosner@gmail.com
  28. 28. Sistema de Controle de Versão Comandos básicos 1 - Criando um repositório e importando arquivos $ svnadmin create ~/repositorioSVN $ mkdir ~/temp $ cd ~/temp $ echo “Debian Festival” > teste.txt $ svn import ~/temp file:///home/<user>/repositorioSVN -m “Importando teste.txt” [DF 4] Marco Rosner - marco.rosner@gmail.com
  29. 29. Sistema de Controle de Versão Comandos básicos 2 – Dando um checkout $ mkdir ~/trabalhoSVN $ cd ~/trabalhoSVN $ svn checkout file:///home/<user>/repositorioSVN ~/trabalhoSVN/projeto [DF 4] Marco Rosner - marco.rosner@gmail.com
  30. 30. Sistema de Controle de Versão Comandos básicos 3 – Alterando arquivo e submetendo ao repositório $ cd ~/trabalhoSVN/projeto $ vim teste.txt $ svn status $ svn commit -m “Alteração no arquivo teste.txt” $ svn update [DF 4] Marco Rosner - marco.rosner@gmail.com
  31. 31. Sistema de Controle de Versão Comandos básicos 4 – Verificando o log $ cd ~/trabalhoSVN/projeto $ svn log teste.txt 5 – Adicionando uma pasta ao repositório $ mkdir trunk branches $ svn add trunk branches (svn del <arq_ou_dir>) $ svn commit -m “Organizando cópia de trabalho” [DF 4] Marco Rosner - marco.rosner@gmail.com
  32. 32. Sistema de Controle de Versão Comandos úteis $ svn diff [-r[N:M]] <arquivo> - Mostra as diferenças entre a cópia de trabalho e a última versão atualizada. $ svn status $ svn info <arq_dir> [DF 4] Marco Rosner - marco.rosner@gmail.com
  33. 33. Sistema de Controle de Versão Arquivos em conflitos - arquivo.mine - arquivo.rOLDREV - arquivo.rNEWREV $ svn resolved <arquivo/url> OLDREV – será sempre o número da revisão da sua cópia de trabalho NEWREV – será o número da revisão HEAD do repositório [DF 4] Marco Rosner - marco.rosner@gmail.com
  34. 34. Sistema de Controle de Versão Conceitos avançados Propriedades - svn:autor - svn:date - svn:log $ svn propset <propriedade> <valor> <arq_dir> $ svn propget <propriedade> <arq_dir> $ svn propedit <propriedade> <arq_dir> $ svn proplist <arq_dir> [DF 4] Marco Rosner - marco.rosner@gmail.com
  35. 35. Sistema de Controle de Versão Conceitos avançados Travamento $ svn lock <arquivo> $ svn unlock <arquivo> $ svn commit -m “Trava efetuada para <arquivo>” [DF 4] Marco Rosner - marco.rosner@gmail.com
  36. 36. Sistema de Controle de Versão Conceitos avançados Ramos (Branches) e Tags $ svn copy SRC DSC $ svn merge -r REV1:REV2 <arquivo/url> $ svn revert <arquivo/url> [DF 4] Marco Rosner - marco.rosner@gmail.com
  37. 37. Sistema de Controle de Versão Conceitos gerenciais Ganchos (hooks) $ cd ~/repositorioSVN/hooks - post-commit.tmpl - post-[un]lock.tmpl - pre-commit.tmpl - pre-[un]lock.tmpl - start-commit.tmpl [DF 4] Marco Rosner - marco.rosner@gmail.com
  38. 38. Sistema de Controle de Versão Conceitos gerenciais svnadmin $ svnadmin dump REPOS_PATH [-r rev1:rev2] [--incremental] Despeja o conteúdo do sistema de arquivos para o stdout $ svnadmin lslocks REPOS_PATH Exibe a descrição de todas as travas $ svnadmin rmlocks REPOS_PATH LOCKED Remove, incondicionalmente, uma ou mais travas de um repositório [DF 4] Marco Rosner - marco.rosner@gmail.com
  39. 39. Sistema de Controle de Versão Conceitos gerenciais svnadmin $ svnadmin setlog REPOS_PATH [-r rev] <arq> Define a mensagem de log de uma revisão $ svnadmin verify REPOS_PATH Verifica os dados armazenados no repositório. [DF 4] Marco Rosner - marco.rosner@gmail.com
  40. 40. Sistema de Controle de Versão Conceitos gerenciais svnlook $ svnlook cat REPOS_PATH PATH_IN_REPOS Mostra o conteúdo de um arquivo. $ svnlook changed REPOS_PATH Mostra os caminhos que foram mudados. Aceita a opção -r para indicar revisões ou -t para transações. $ svnlook diff REPOS_PATH Mostra as diferenças de arquivos e propriedades que foram mudadas. Aceita a opção -r para indicar revisões ou -t para transações. [DF 4] Marco Rosner - marco.rosner@gmail.com
  41. 41. Sistema de Controle de Versão Conceitos gerenciais svnlook $ svnlook info REPOS_PATH Mostra o autor, data-hora, tamanho da mensagem de log, e a mensagem de log. Aceita a opção -r para indicar revisões ou -t para transações. $ svnlook lock REPOS_PATH PATH_IN_REPOS Se o lock existir no caminho do repositório, o descreve. $ svnlook log REPOS_PATH Mostra a mensagem de log. Aceita a opção -r para indicar revisões ou -t para transações. [DF 4] Marco Rosner - marco.rosner@gmail.com
  42. 42. Sistema de Controle de Versão Conceitos gerenciais svnlook $ svnlook proplist REPOS_PATH PATH_IN_REPOS Exibe os nomes e valores de propriedades de arquivos e diretórios versionados. $ svnlook propget REPOS_PATH PATH_IN_REPOS Exibe o valor cru de uma propriedade em um caminho no repositório. [DF 4] Marco Rosner - marco.rosner@gmail.com
  43. 43. Sistema de Controle de Versão [DF 4] Marco Rosner - marco.rosner@gmail.com
  44. 44. Sistema de Controle de Versão O que é? - Criado por Linus Torvalds, em 2005 - GIT = Estupido - Licenciado pela GPLv2 - Sistema distribuído - Independe de um servidor central oiu da rede. - Revisões incrementais - Permite tanto locking quanto merging - Possibilita criar branches e tags - Sua atual versão é 1.6.4 [DF 4] Marco Rosner - marco.rosner@gmail.com
  45. 45. Sistema de Controle de Versão Quem usa? - Android - Fedora - GNOME - Linux Kernel - One Laptop Per Child - Perl - Qt - Ruby on Rails - Samba - Wine - X.org Server [DF 4] Marco Rosner - marco.rosner@gmail.com
  46. 46. Sistema de Controle de Versão Características - Desenvolvimento distribuído - Acesso ao repositorio por HTTP, FTP, rsync ou pelo protocolo GIT - Ferramenta git-svn - Escrito em C - Facilidade de criação e combinação (merge) de branchs [DF 4] Marco Rosner - marco.rosner@gmail.com
  47. 47. Sistema de Controle de Versão Comandos básicos 1 – Criando o repositório e adicionando os arquivos do projeto $ mkdir ~/trabalhoGIT $ cd ~/trabalhoGIT $ git init (criar/copiar arquivo) $ git commit -a -m “Iniciando repositório” [DF 4] Marco Rosner - marco.rosner@gmail.com
  48. 48. Sistema de Controle de Versão Comandos básicos 2 – Verificando o status do projeto (editar arquivo) $ git status 3 – Navegando pelo log do projeto $ git log [<arq_dir> / <commit_id>] [DF 4] Marco Rosner - marco.rosner@gmail.com
  49. 49. Sistema de Controle de Versão Comandos básicos 4 – Criando um branch $ git branch calc 5 – Mudando de branch e efetuando merge $ git checkout calc (editar arquivo) $ git commit -a -m “Editando arq no branch x” $ git checkout master $ git merge calc [DF 4] Marco Rosner - marco.rosner@gmail.com
  50. 50. Sistema de Controle de Versão Agradecimentos Obrigado pela sua presença neste mini-curso Qualquer dúvida, fico a disposição através do e- mail. [DF 4] Marco Rosner - marco.rosner@gmail.com
  51. 51. Sistema de Controle de Versão Referências bibliográficas CVS - http://www.nongnu.org/cvs/ - http://en.wikipedia.org/wiki/ Concurrent_Versions_System - http://cvsbook.red-bean.com/ [DF 4] Marco Rosner - marco.rosner@gmail.com
  52. 52. Sistema de Controle de Versão Referências bibliográficas SVN - http://subversion.tigris.org/ - http://svnbook.red-bean.com/ - http://en.wikipedia.org/wiki/ Subversion_(software) [DF 4] Marco Rosner - marco.rosner@gmail.com
  53. 53. Sistema de Controle de Versão Referências bibliográficas GIT - http://git-scm.com/ - http://en.wikipedia.org/wiki/Git_(software) - Google tech talk: Linus Torvalds on git (http://www.youtube.com/watch? v=4XpnKHJAok8) [DF 4] Marco Rosner - marco.rosner@gmail.com

×