SlideShare uma empresa Scribd logo
1 de 53
Baixar para ler offline
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
    ● 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
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
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
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
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
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
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
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
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
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
Sistema de Controle de Versão
 Conceitos Fundamentais




 - Como organizar sua cópia
  de trabalho?




[DF 4] Marco Rosner - marco.rosner@gmail.com
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
Sistema de Controle de Versão




                     CVS
         Concurrent Versioning System




[DF 4] Marco Rosner - marco.rosner@gmail.com
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
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
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
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
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
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
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
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 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 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
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
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
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
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
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
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
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
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
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

Mais conteúdo relacionado

Destaque

Controle de Mudanças com GitHub
Controle de Mudanças com GitHubControle de Mudanças com GitHub
Controle de Mudanças com GitHub
Bruno Furtado
 
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
Thiago Filadelfo
 
Mini aula-sublime-text-git-e-github
Mini aula-sublime-text-git-e-githubMini aula-sublime-text-git-e-github
Mini aula-sublime-text-git-e-github
Wilson Mendes
 

Destaque (20)

Controle de Mudanças com GitHub
Controle de Mudanças com GitHubControle de Mudanças com GitHub
Controle de Mudanças com GitHub
 
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
 
GCS - Aula 02 - Conceitos Principais
GCS - Aula 02 - Conceitos PrincipaisGCS - Aula 02 - Conceitos Principais
GCS - Aula 02 - Conceitos Principais
 
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...
 
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
 
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
 
GCS - Aula 09 - GCS Ágil
GCS - Aula 09 - GCS ÁgilGCS - Aula 09 - GCS Ágil
GCS - Aula 09 - GCS Ágil
 
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
 
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
 
Controle de versão com GIT
Controle de versão com GITControle de versão com GIT
Controle de versão com GIT
 
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
 
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
 
Alm open source
Alm open sourceAlm open source
Alm open source
 
Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0
 
Android UI Fundamentals part 1
Android UI Fundamentals part 1Android UI Fundamentals part 1
Android UI Fundamentals part 1
 
Controle de versão com Git e BitBucket
Controle de versão com Git e BitBucketControle de versão com Git e BitBucket
Controle de versão com Git e BitBucket
 
Controle de versão utilizando git
Controle de versão utilizando gitControle de versão utilizando git
Controle de versão utilizando git
 
Mini aula-sublime-text-git-e-github
Mini aula-sublime-text-git-e-githubMini aula-sublime-text-git-e-github
Mini aula-sublime-text-git-e-github
 
O futuro dos WebApps com AngularJS 2.0
O futuro dos WebApps com AngularJS 2.0O futuro dos WebApps com AngularJS 2.0
O futuro dos WebApps com AngularJS 2.0
 
Gerenciadores de Controle de Versão: Git, Mercurial e Bazaar
Gerenciadores de Controle de Versão: Git, Mercurial e BazaarGerenciadores de Controle de Versão: Git, Mercurial e Bazaar
Gerenciadores de Controle de Versão: Git, Mercurial e Bazaar
 

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

S.o. windows server2008
S.o. windows server2008S.o. windows server2008
S.o. windows server2008
teacherpereira
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
eliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
guest7a481e8
 

Semelhante a [Mini-curso] Sistema de Controle de Versão (20)

SVN no Desenvolvimento de Software
SVN no Desenvolvimento de SoftwareSVN no Desenvolvimento de Software
SVN no Desenvolvimento de Software
 
Controlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e SubversionControlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e Subversion
 
Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa
Versionamento de Software com Subversion - Wanderson Henrique Camargo RosaVersionamento de Software com Subversion - Wanderson Henrique Camargo Rosa
Versionamento de Software com Subversion - Wanderson Henrique Camargo Rosa
 
S.o. windows server2008
S.o. windows server2008S.o. windows server2008
S.o. windows server2008
 
Getting into Linux - A brief Introduction to the Shell Linux Environment
Getting into Linux - A brief Introduction to the Shell Linux EnvironmentGetting into Linux - A brief Introduction to the Shell Linux Environment
Getting into Linux - A brief Introduction to the Shell Linux Environment
 
Git + Github
Git + GithubGit + Github
Git + Github
 
[4Soft] Git para iniciantes
[4Soft] Git para iniciantes[4Soft] Git para iniciantes
[4Soft] Git para iniciantes
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016
 
GCS - Aula 07 - Sistemas de Controle de Versões
GCS - Aula 07 - Sistemas de Controle de VersõesGCS - Aula 07 - Sistemas de Controle de Versões
GCS - Aula 07 - Sistemas de Controle de Versões
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Svn - grupo de estudos sol7
Svn - grupo de estudos sol7Svn - grupo de estudos sol7
Svn - grupo de estudos sol7
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação maven
 
Porque todo programador deve utilizar Sistema de Controle de Versão?
Porque todo programador deve utilizar Sistema de Controle de Versão?Porque todo programador deve utilizar Sistema de Controle de Versão?
Porque todo programador deve utilizar Sistema de Controle de Versão?
 
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
 
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...
 
Versionamento com git
Versionamento com gitVersionamento com git
Versionamento com git
 
Trabalhando com ambientes complexos – SharePoint 2007 e SQL Server 2005
Trabalhando com ambientes complexos – SharePoint 2007 e SQL Server 2005Trabalhando com ambientes complexos – SharePoint 2007 e SQL Server 2005
Trabalhando com ambientes complexos – SharePoint 2007 e SQL Server 2005
 

Último

Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
TailsonSantos1
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 

Último (20)

Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
GÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptxGÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptx
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 

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

  • 1. Sistema de Controle de Versão Marco Rosner - marco.rosner@gmail.com
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Sistema de Controle de Versão Conceitos Fundamentais - Como organizar sua cópia de trabalho? [DF 4] Marco Rosner - marco.rosner@gmail.com
  • 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. Sistema de Controle de Versão CVS Concurrent Versioning System [DF 4] Marco Rosner - marco.rosner@gmail.com
  • 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. 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. 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. 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. 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. 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. 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. Sistema de Controle de Versão SVN [DF 4] Marco Rosner - marco.rosner@gmail.com
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Sistema de Controle de Versão [DF 4] Marco Rosner - marco.rosner@gmail.com
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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