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 GitHubBruno Furtado
 
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
 
GCS - Aula 02 - Conceitos Principais
GCS - Aula 02 - Conceitos PrincipaisGCS - Aula 02 - Conceitos Principais
GCS - Aula 02 - Conceitos PrincipaisMisael Santos
 
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
 
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
 
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
 
GCS - Aula 09 - GCS Ágil
GCS - Aula 09 - GCS ÁgilGCS - Aula 09 - GCS Ágil
GCS - Aula 09 - GCS ÁgilMisael Santos
 
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
 
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
 
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
 
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
 
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.0Diego Pacheco
 
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 BitBucketMarcio Barbosa
 
Controle de versão utilizando git
Controle de versão utilizando gitControle de versão utilizando git
Controle de versão utilizando gitfredmosc
 
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-githubWilson Mendes
 
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.0Wilson Mendes
 
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 BazaarIvanilton Polato
 

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

SVN no Desenvolvimento de Software
SVN no Desenvolvimento de SoftwareSVN no Desenvolvimento de Software
SVN no Desenvolvimento de SoftwareManoel Afonso
 
Controlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e SubversionControlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e Subversionlekitamura
 
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 RosaTchelinux
 
S.o. windows server2008
S.o. windows server2008S.o. windows server2008
S.o. windows server2008teacherpereira
 
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 EnvironmentRafael Moreno
 
[4Soft] Git para iniciantes
[4Soft] Git para iniciantes[4Soft] Git para iniciantes
[4Soft] Git para iniciantes4Soft
 
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 2016Felipe Klerk Signorini
 
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õesMisael Santos
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxguest7a481e8
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação mavenAndré Justi
 
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?Marco Rosner
 
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)Igor Abade
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versãoMarcos Pessoa
 
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...Jadson Santos
 
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 2005Comunidade CanalSharePoint
 

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

DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -Aline Santana
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxAULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxLaurindo6
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMVanessaCavalcante37
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxBeatrizLittig1
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Slide língua portuguesa português 8 ano.pptx
Slide língua portuguesa português 8 ano.pptxSlide língua portuguesa português 8 ano.pptx
Slide língua portuguesa português 8 ano.pptxssuserf54fa01
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
1.ª Fase do Modernismo Brasileira - Contexto histórico, autores e obras.
1.ª Fase do Modernismo Brasileira - Contexto histórico, autores e obras.1.ª Fase do Modernismo Brasileira - Contexto histórico, autores e obras.
1.ª Fase do Modernismo Brasileira - Contexto histórico, autores e obras.MrPitobaldo
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 

Último (20)

DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxAULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docx
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
Slide língua portuguesa português 8 ano.pptx
Slide língua portuguesa português 8 ano.pptxSlide língua portuguesa português 8 ano.pptx
Slide língua portuguesa português 8 ano.pptx
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
1.ª Fase do Modernismo Brasileira - Contexto histórico, autores e obras.
1.ª Fase do Modernismo Brasileira - Contexto histórico, autores e obras.1.ª Fase do Modernismo Brasileira - Contexto histórico, autores e obras.
1.ª Fase do Modernismo Brasileira - Contexto histórico, autores e obras.
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 

[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