controle de versão com cvs · controle de versão com cvs danilo toshiaki sato treinamento alesp...
TRANSCRIPT
![Page 1: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/1.jpg)
Controle de Versão com CVS
Danilo Toshiaki Satowww.dtsato.com
Treinamento ALESP – SPL
![Page 2: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/2.jpg)
Copyleft 2006 Danilo Sato 2
Agenda
1. Introdução2. Conceitos Importantes3. Operações mais comuns - Eclipse4. Processo de Liberação – SPL5. Conclusão6. Workshop
![Page 3: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/3.jpg)
Copyleft 2006 Danilo Sato 3
Introdução
CVS = Concurrent Versions System Principais funções:
1. Guardar histórico de mudanças: Habilidade de voltar à versão do dia
anterior
2. Colaboração: CVS não faz lock de arquivos Permite que mais de um desenvolvedor
trabalhe no mesmo arquivo
![Page 4: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/4.jpg)
Copyleft 2006 Danilo Sato 4
Introdução
Colaboração simultânea é possívelatravés do modelo copiar-alterar-juntar: Copiar: Os desenvolvedores pedem uma
cópia local para o servidor Alterar: O desenvolvedor A altera sua
cópia local e envia para o servidor Juntar (merge): O desenvolvedor B
envia sua alteração para o servidor e éinformado sobre o conflito
![Page 5: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/5.jpg)
Copyleft 2006 Danilo Sato 5
Conceitos Importantes
Revisão (revision): Um número que representa uma "foto" do
arquivo no servidor Cada commit de arquivo, altera seu número de
revisão Exemplos de número de revisão: 1.3, 1.3.2.2 Um número de revisão sempre tem um número
par de inteiros separados por '.' Revisão inicial padrão de cada arquivo é 1.1 Números de revisão com mais de um '.'
representam branches
![Page 6: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/6.jpg)
Copyleft 2006 Danilo Sato 6
Conceitos Importantes
Repositório: A cópia mestre onde o servidor do CVS mantêm
todo o histórico de revisões Cada projeto tem exatamente um repositório
Cópia Local (working copy): A cópia onde você faz suas alterações nos
arquivos do projeto Podem exitir diversas cópias locais para o
mesmo arquivo do projeto Geralmente cada desenvolvedor tem sua cópia
local
![Page 7: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/7.jpg)
Copyleft 2006 Danilo Sato 7
Conceitos Importantes
Check out: O ato de pedir uma cópia local para o repositório Sua cópia local irá refletir o estado do arquivo
no momento do check out
Commit: O ato de enviar suas alterações na cópia local
para o repositório Também conhecido como check in Para que outros desenvolvedores enxerguem
suas alterações, você deve publicá-las atravésde um commit
![Page 8: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/8.jpg)
Copyleft 2006 Danilo Sato 8
Conceitos Importantes
Mensagem de Log: Um comentário que descreve cada alteração Anexado à revisão no momento do commit Importante para comunicar o que foi alterado
para outros desenvolvedores
Atualização (update): O ato de trazer alterações feitas no repositório
para sua cópia local Operação complementar ao commit
Cópia Local Repositóriocommit
update
![Page 9: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/9.jpg)
Copyleft 2006 Danilo Sato 9
Conceitos Importantes
Conflito: A situação quando dois desenvolvedores tentam
"commitar" mudanças feitas numa mesmaregião do arquivo
O CVS avisa sobre o conflito, mas odesenvolvedor deve resolvê-lo
Tag: Os números de revisão de cada arquivo são
independentes Uma tag é um nome simbólico para uma
determinada revisão de um ou mais arquivos
![Page 10: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/10.jpg)
Copyleft 2006 Danilo Sato 10
Conceitos Importantes
arquivo1 arquivo2 arquivo3 arquivo4 arquivo51.1 1.1 1.1 1.1 1.11.2 1.2 1.2 1.21.3 1.3 1.3 1.31.4 1.4 1.4 1.5 1.6
arquivo1 arquivo2 arquivo3 arquivo4 arquivo5 1.1 1.2 1.1 1.31.1 1.2 1.4 1.11.2*-----1.3*-----1.5*-----1.2*-----1.1* <-- Tag (Ex: "Bug_21")1.3 1.6 1.31.4 1.4
![Page 11: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/11.jpg)
Copyleft 2006 Danilo Sato 11
Conceitos Importantes
Branch: É um recurso que permite isolar mudanças
numa linha de desenvolvimento paralela Mudanças feitas num branch não são
imediatamente refletidas da linha principal(HEAD) ou em outros branches
+-----+ +-----+ +-----+ +-----+ +-----+! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 ! <- HEAD+-----+ +-----+ +-----+ +-----+ +-----+ ! ! ! +---------+ +---------+ +---------+Branch 1.2.2 -> +---! 1.2.2.1 !----! 1.2.2.2 !----! 1.2.2.3 ! +---------+ +---------+ +---------+
![Page 12: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/12.jpg)
Copyleft 2006 Danilo Sato 12
Operações mais Comuns
Eclipse: Tag = Versão Versão ≠ Revisão Perspectiva do Repositório CVS:
Gerenciamento dos repositórios e projetos Gerenciamento de Branches e Versões
(Tags) Histórico de Revisões Árvore de Versões (Tags)
![Page 13: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/13.jpg)
Copyleft 2006 Danilo Sato 13
Operações mais Comuns
Configuração de Labels: Permite a identificação da tag/branch
associada à cópia local Abra "Windows > Preferences", navegue até
"General > Appearance > Label Decorations" eescolha a opção "CVS"
![Page 14: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/14.jpg)
Copyleft 2006 Danilo Sato 14
Operações mais Comuns
![Page 15: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/15.jpg)
Copyleft 2006 Danilo Sato 15
Operações mais Comuns
Sincronizar a cópia local: Operação para verificar as diferenças entre a
cópia local e o repositório Permite:
Atualizar (update) a cópia local com alteraçõesfeitas no repositório ( )
Commit de arquivos alterados ( ) Merge para resolver conflitos ( )
Basta clicar com o botão direito no recursodesejado (projeto, arquivo ou pasta) eescolher "Team > Sincronyze with Repository"
![Page 16: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/16.jpg)
Copyleft 2006 Danilo Sato 16
Operações mais Comuns
Atualização (update): "Team > Update"
Commit: "Team > Commit..."
Entrar com a mensagem de log do commit
Resolução de conflitos (merge): Na visão de sincronização, resolver o conflito na
cópia local Clicar com o botão direito no arquivo e escolher
"Mark as merged"
![Page 17: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/17.jpg)
Copyleft 2006 Danilo Sato 17
Operações mais Comuns
Criar uma tag: Tag = Versão Clicar com o botão direito no recurso desejado "Team > Tag as Version..."
Preencher o nome da tag e clicar em "OK" É possível mover uma tag existente para a
revisão atual É possível criar uma tag diretamente no
repositório, através da perspectiva CVS
![Page 18: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/18.jpg)
Copyleft 2006 Danilo Sato 18
Operações mais Comuns
Substituir a cópia local com uma versão(tag)/branch diferente: Clicar com o botão direito no recurso desejado "Replace With > Another Branch or Version..."
Escolha a tag/branch desejada e clique em "OK" O label com o nome da tag/branch deve
aparecer ao lado do nome do projeto Ao fazer o check out de uma tag, você não pode
alterar seus arquivos e fazer commit: Tags estão associadas à números de revisão
existentes
![Page 19: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/19.jpg)
Copyleft 2006 Danilo Sato 19
Operações mais Comuns Criar um branch:
Atualize sua cópia local com o branch queservirá de base (HEAD) para o novo branch
Clique com o botão direito no recurso desejado "Team > Branch..."
Entre com o nome do branch Deixe o checkbox "Start working in the
branch" marcado caso queira atualizar sua cópialocal com os arquivos do novo branch
O campo "Version Name" é automaticamentepopulado, representando o nome de uma tagque marca o início do branch (útil na hora domerge)
![Page 20: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/20.jpg)
Copyleft 2006 Danilo Sato 20
Operações mais Comuns
Merge entre branches: Ocorre em duas direções:
Do branch para o sub-branch (rebase) Do sub-branch para o branch
Recomenda-se fazer um rebase antes de fazer omerge para o branch principal
Do ponto de vista da operação no CVS, só mudao alvo do merge
![Page 21: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/21.jpg)
Copyleft 2006 Danilo Sato 21
Operações mais Comuns Merge entre branches:
Atualize sua cópia local com o branch queservirá como alvo do merge: Rebase: alvo = sub-branch Merge: alvo = HEAD
Clique com o botão direito no recurso desejado "Team > Merge..."
Escolha o branch desejado (end tag) e o pontoinicial comum (geralmente o root tag do branch)
A visão de sincronização será exibida Faça o merge na sua cópia local Faça o commit da cópia local já atualizada
![Page 22: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/22.jpg)
Copyleft 2006 Danilo Sato 22
Processo de Liberação - SPL Separação hierárquica em 4 ambientes:
1. Computador Local (BD: Desenvolvimento)2. Ambiente de Integração (BD: Desenvolvimento)3. Ambiente de Homologação (BD: Homologação)4. Ambiente de Produção (BD: Produção)
Código não pode “pular” nenhum ambiente Integração entre 1 e 2 será feita pelo CVS
e pelo Cruise Control Entregas entre 2 e 3 (releases)
correspondem a um branch no CVS (Ex:"Release1")
![Page 23: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/23.jpg)
Copyleft 2006 Danilo Sato 23
Processo de Liberação - SPL Homologação Produção não acarreta mudança no
código nem no CVS Novas funcionalidades são desenvolvidas sempre no
HEAD Releases passam a ser numeradas:
“Versão_1", “Versão_2", “Versão_2_1" Erros em homologação/produção:
São corrigidos no branch e devem passar peloambiente de integração
Na re-entrega para homologação, uma nova tag deveser criada no branch do release
Após a re-entrega, deve ser feito um merge dobranch para o HEAD para que as atualizações sejamrefletidas na próxima entrega
![Page 24: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/24.jpg)
Copyleft 2006 Danilo Sato 24
Processo de Liberação - SPL
![Page 25: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/25.jpg)
Copyleft 2006 Danilo Sato 25
Processo de Liberação - SPL
Vantagens: Processo controlado de entregas Possibilidade de voltar para qualquer
versão entregue no passado Separação entre código instável
(desenvolvimento de novasfuncionalidades) e código entregue
Solução de bugs não impacta odesenvolvimento de novasfuncionalidades
![Page 26: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/26.jpg)
Copyleft 2006 Danilo Sato 26
Conclusão
Visão geral dos principais conceitos eoperações do CVS
Realização das operações noambiente Eclipse
Proposta para um novo processo deliberação no SPL
Surgimento de um novo papel:"Release Manager"
![Page 27: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/27.jpg)
Copyleft 2006 Danilo Sato 27
Referências Branching with Eclipse and CVS:
http://www.eclipse.org/articles/Article-CVS-branching/eclipse_branch.html
Branches, merging and tags:http://plone.org/documentation/tutorial/cvs/branches-and-tags
CVS official site (for those braves enoughwho don’t want to use Eclipse CVS client):http://www.nongnu.org/cvs
CVS Wikied Manual:http://ximbiot.com/cvs/wiki/index.php?title=CVS--Concurrent_Versions_System_v1.12.12.1
![Page 28: Controle de Versão com CVS · Controle de Versão com CVS Danilo Toshiaki Sato Treinamento ALESP – SPL. Copyleft 2006 Danilo Sato 2 Agenda 1.Introdução 2.Conceitos Importantes](https://reader035.vdocuments.com.br/reader035/viewer/2022081323/5c210ad109d3f29a428c8d53/html5/thumbnails/28.jpg)
Copyleft 2006 Danilo Sato 28
Dúvidas ou Sugestões?