Sistema de Versionamento de Código
Nome: Acácio Fernandez Egas Junior ­ 0821193
Nome: Fernando Queiroz Santana ­ 0820864
Nome: Francisco J. de Oliveira Castilho ­ 098161
Nome: Gabriel Marcos Santos Rubens ­ 0820589
Nome: Marcio Lorran dos Reis ­ 0820875
Nome: Walter Dalpra de Souza – 103271
Nome: Wellington do Rosário Biliera ­ 0820307
Sistema de Versionamento de Código
É um sistema que atribui nomes 
(marcações) as alterações feitas no 
“código fonte”
Tropa de Elite 2!
Como Capitão Nascimento adotou um 
controlador de versões no BOPE
“Missão dada é missão cumprida”
Vamos desenvolver um
sistema novo.
E ele vai ser...
Ok, minha equipe vai iniciar o
desenvolvimento amanhã
Problema básico
Salvar
Problema básico
Salvar Voltar Cancelar
Problema básico
Salvar Voltar Cancelar
Problema básico
Vamos controlar as versões
Com arquivos zipados
Gambiarra de Versionamento de Código
Gambiarra de Versionamento de Código
V 0.1 V 0.2 V 1.0
Gambiarra de Versionamento de Código
v
Cadê a versão sem a alteração
na lógica de login
Está guardada...
Em um zip!
v
Em qual zip está?
Fala!
Lei de Murphy
“Se algo pode dar errado, dará errado da 
pior maneira, no pior momento e de modo 
a causar o maior estrago possível”
Lei de Clark
“Murphy era otimista”
Lei do Capitão Nascimento
“Capitão vai dar merda, capitão. […]
Capitão, já disse que vai dar merda!”
Podemos utilizar um sistema
para controlar as versões
Lei de Murphy
“Se algo pode dar errado, dará errado da 
pior maneira, no pior momento e de modo 
a causar o maior estrago possível”
Lei de Clark
“Murphy era otimista”
Lei do Capitão Nascimento
“Capitão vai dar merda, capitão. […]
Capitão, já disse que vai dar merda!”
Qual a vantagem de utilizar
um sistema pra controlar...
Sistemas de Controle de Versão
Trabalhar com equipes grandes
Equipes distribuídas
Colaboração no desenvolvimento
Viabiliza OpenSource
Sistemas de Controle de Versão
Concurrent Version System (CVS)
Subversion (SVN)
GIT
Sistemas de Controle de Versão
Centralizado:
Concurrent Version System (CVS)
Subversion (SVN)
Descentralizado:
GIT
Centralizado
Descentralizado
De hoje em diante nós vamos
trabalhar com o CVS
Capitão...
vai dar merda,
capitão
Concurrent Version System (CVS)
Publicado em 1983
Revision Control System (RCS)
O primeiro amplamente adotado
Melhor que não ter nada ou não ;)
Concurrent Version System (CVS)
cvs checkout: Baixa do servidor
cvs update: Atualiza com o servidor
cvs commit: Envia para o servidor
Concurrent Version System (CVS)
cvs add: Adiciona ao controle de versão
cvs remove: Remove do controle de versão
svn diff: Verificar diferença com o servidor
Concurrent Version System (CVS)
Foi o primeiro passo, mas...
Não pode renomear
Não pode mover
Muitos conflitos
Amor, no lugar do CVS você pode
utilizar a SVN
Nunca mais fale do meu trabalho!
Entendeu?!?!
A tropa é minha.
CVS não deu certo.
Vamos pro SVN!
Eu já disse
que vai dar merda!
Subversion (SVN)
Evolução do CVS
Lançado em 2000
Correção de Bugs do CVS
Subversion (SVN)
Merge melhor que do CVS
Interfaces gráficas (TortoiseSVN)
Substituto direto do CVS
Subversion (SVN)
svn checkout: Baixa do servidor
svn update: Atualiza com o servidor
svn commit: Envia para o servidor
Subversion (SVN)
svn add: Adiciona ao controle de versão
svn remove: Remove do controle de versão
svn diff: Verificar diferença com o servidor
Subversion (SVN)
Hospedagem
Quem sabe utilizar o Git?
Fala porr#!!!
Ele sabe! Ele sabe!
Vou ter que convencer a tropa a
adotar essa merda!
Melhor levar o “caveirabook” pra fazer
o código na hora!
Lei de Murphy
“Se algo pode dar errado, dará errado da 
pior maneira, no pior momento e de modo 
a causar o maior estrago possível”
Lei de Clark
“Murphy era otimista”
Lei do Capitão Nascimento
“Capitão vai dar merda, capitão. […]
Capitão, já disse que vai dar merda!”
Agora minha equipe vai
utilizar git
Lei de Murphy
“Se algo pode dar errado, dará errado da 
pior maneira, no pior momento e de modo 
a causar o maior estrago possível”
Lei de Clark
“Murphy era otimista”
Lei do Capitão Nascimento
“Capitão vai dar merda, capitão. […]
Capitão, já disse que vai dar merda!”
Quem criou o git?
E como funciona?
Git
Merge++
Ferramenta git­svn
Commit em ordem (Rebase)
Todo histórico
Lei de Murphy
“Se algo pode dar errado, dará errado da 
pior maneira, no pior momento e de modo 
a causar o maior estrago possível”
Lei de Clark
“Murphy era otimista”
Lei do Capitão Nascimento
“Capitão vai dar merda, capitão. […]
Capitão, já disse que vai dar merda!”
Eu vou ligar o “caveirabook”
pra fazer uma demo...
Git
Fluxo de trabalho  offline (master):
git init
touch README
git add .
git commit ­m 'mensagem'
Git
Trabalhando com branch:
git checkout ­b desenv
git add .
git commit ­m 'mensagem'
Git
Trabalhando com branch:
git checkout ­b desenv
git add .
git commit ­m 'mensagem'
Git
Trabalhando com branch:
git checkout master
git merge desenv
Lei de Murphy
“Se algo pode dar errado, dará errado da 
pior maneira, no pior momento e de modo 
a causar o maior estrago possível”
Lei de Clark
“Murphy era otimista”
Lei do Capitão Nascimento
“Capitão vai dar merda, capitão. […]
Capitão, já disse que vai dar merda!”
Mas... Onde vai ficar
hospedado o código fonte?
Git ­ GitHub
Orkut de desenvolvedores
Compartilhar código
Estudar 
Você ainda não tem uma conta?
Lei de Murphy
“Se algo pode dar errado, dará errado da 
pior maneira, no pior momento e de modo 
a causar o maior estrago possível”
Lei de Clark
“Murphy era otimista”
Lei do Capitão Nascimento
“Capitão vai dar merda, capitão. […]
Capitão, já disse que vai dar merda!”
Ok, mas da uma demo de
Como trabalhar com github.
Git ­ GitHub
Trabalhando com GitHub.com
git clone git@github.com:nascimento/bope.git
git checkout -b desenv
Adiciona/Deleta/Modifica (git add)
git commit -m “mensagem” (commit offline)
Git ­ GitHub
Outros desenvolvendo no github
git pull origin master
git checkout desenv
git rebase master
Git ­ GitHub
git checkout master
git merge desenv
git push origin master
Continua...
Lei de Murphy
“Se algo pode dar errado, dará errado da 
pior maneira, no pior momento e de modo 
a causar o maior estrago possível”
Lei de Clark
“Murphy era otimista”
Lei do Capitão Nascimento
“Capitão vai dar merda, capitão. […]
Capitão, já disse que vai dar merda!”
WTF...
Eu apareci várias vezes nesse
PPT e com essa cara de bunda!
E não me deram uma fala
Agora o padrão do batalhão
E o git com github
Agora só vou utilizar
sistemas
descentralizados!
O próximo que falar em
CVS ou SVC vai pro
saco (ou vassoura)!
Dúvidas

Sistema de Controle de Versão - CVS, SVN e GIT