CVS

1.425 visualizações

Publicada em

Extremamente antiga, apresentada na CPM após a introdução de controle de versão em meu grupo de trabalho

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.425
No SlideShare
0
A partir de incorporações
0
Número de incorporações
48
Ações
Compartilhamentos
0
Downloads
16
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

CVS

  1. 1. CVS – Concurrent Versions System <ul><li>Ricardo Bánffy </li></ul><ul><li>[email_address] </li></ul>
  2. 2. Noções Gerais <ul><li>Um ambiente de produção CVS é composto de duas partes principais: um repositório e pelo menos uma árvore de trabalho </li></ul>
  3. 3. Repositório <ul><li>O repositório é onde ficam os dados das múltiplas versões e da história dos vários arquivos </li></ul><ul><li>Ele guarda apenas as diferenças entre as versões (exceto arquivos binários) </li></ul><ul><li>Se for fazer back-up de algo, que seja dele </li></ul><ul><li>São só arquivos </li></ul>
  4. 4. Árvore de Trabalho <ul><li>É o lugar em que os programadores trabalham </li></ul><ul><li>Cada programador tem a sua </li></ul><ul><li>Locking otimista – permite mais de uma pessoa trabalhando no mesmo arquivo e resolve os conflitos depois </li></ul><ul><li>Precisa receber updates do repositório para que o programador não trabalhe sobre versões velhas (o que não é tão problema assim) </li></ul>
  5. 5. Como isso funciona? <ul><li>Alguém cria um repositório </li></ul><ul><li>Alguém cria um módulo </li></ul><ul><li>Alguém coloca arquivos dentro do módulo </li></ul><ul><li>Alguém baixa os arquivos atuais para sua área de trabalho </li></ul><ul><li>Alguém sobe arquivos mudados para a área de trabalho (cliente CVS sabe quais foram) </li></ul>
  6. 6. Por que controlar versões <ul><li>Saber sempre o que mudou e o que quebrou </li></ul><ul><li>Desfazer os erros </li></ul><ul><li>Desfazer os erros dos outros </li></ul><ul><li>Desfazer os erros da semana passada </li></ul><ul><li>Quem fez o que? </li></ul><ul><li>Centralizar equipes distribuídas </li></ul>
  7. 7. Por que CVS? <ul><li>Software Livre </li></ul><ul><li>Multi-Plataforma </li></ul><ul><li>Líder de Mercado </li></ul><ul><li>Ampla escolha de ferramentas </li></ul><ul><li>Vendor-neutral </li></ul><ul><li>Extremamente maduro </li></ul><ul><li>Acesso remoto simples </li></ul>
  8. 8. O que o CVS não faz <ul><li>Ele não organiza o seu trabalho </li></ul><ul><li>Ele não substitui comunicação entre desenvolvedores </li></ul><ul><li>Ele não substitui um gerente de projeto </li></ul><ul><li>Ele é só um software </li></ul><ul><li>Ele não lida muito bem com coisas que mudam de nome ou de lugar </li></ul>
  9. 9. Ampla escolha de front-ends <ul><li>Command-line: para os bravos, ou para as coisas realmente “cabeludas” – igual em quase qualquer plataforma </li></ul><ul><li>WinCVS: Todos os sinos e apitos </li></ul><ul><li>MacCvsX: Todos os sinos e apitos, em Mac </li></ul><ul><li>gCVS: Para GTK+ </li></ul><ul><li>Plug-in para Visual Studio (ainda em pre-release) </li></ul><ul><li>Tortoise CVS: Integração total com o Windows Explorer – eu gosto desse </li></ul><ul><li>Suporte embutido em seu IDE favorito </li></ul>
  10. 10. Mão na massa com o Tortoise CVS <ul><li>Integrado ao Windows Explorer </li></ul><ul><li>Muito, muito fácil de usar (desde que se tenha alguma noção de como o CVS funciona) </li></ul><ul><li>Software Livre </li></ul><ul><li>Leve (roda em PCs com menos memória que alguns PDAs) </li></ul>
  11. 11. Criando um repositório <ul><li>APENAS PARA ADMINISTRADORES!!! </li></ul><ul><li>Crie uma pasta em um servidor. Dentro dela crie outra pasta chamada CVSROOT </li></ul>
  12. 12. Criando um módulo <ul><li>Selecione a pasta de trabalho e, no menu de contexto, escolha “CVS>Make New Module” </li></ul><ul><li>Na pasta que contém os arquivos escolha “CVS Add Contents” </li></ul><ul><li>Entre na pasta e observe os ícones vermelhos </li></ul><ul><li>Escolha “CVS Commit” – Se quiser contar um pouco da história dessa atualização, agora é um bom momento </li></ul>
  13. 13. Criando um módulo <ul><li>Diga que o repositório está em (no nosso caso) p: epositorio </li></ul><ul><li>Lembre-se que acentos e espaços em nomes de arquivos dão azar </li></ul>
  14. 14. Uma caixa de areia só sua <ul><li>O primeiro passo para começar a trabalhar com um projeto no CVS é gerar sua cópia de trabalho </li></ul><ul><li>Em uma pasta vazia, escolha “CVS Checkout” </li></ul><ul><li>No CVSROOT coloque “:local:p:epositorio” e escolha o módulo “projeto” </li></ul><ul><li>Na pasta, escola “CVS Update” </li></ul><ul><li>Verde indica que o arquivo não foi modificado desde que foi trazido do repositório </li></ul><ul><li>As últimas alterações são baixadas para sua máquina com “CVS Update” – faça isso com frequência </li></ul>
  15. 15. Você mudou coisas <ul><li>Quando você muda coisas, é hora de usar o “Commit” de novo </li></ul><ul><li>Commit manda tudo o que está “pendente” na sua área de trabalho para o servidor </li></ul><ul><li>Se houver conflitos, ele consegue resolver automaticamente sozinho (ele avisa, claro) </li></ul><ul><li>Se ele não conseguir, ele espera que você arrume </li></ul>
  16. 16. Dia do release <ul><li>Você pode marcar um determinado conjunto de arquivos como uma versão. Para isso, use “CVS>Tag” </li></ul><ul><li>Usando “Update Special” você pode obter os arquivos de um determinado tag ou de uma determinada data. </li></ul><ul><li>CVS não faz nem build nem deploy (até certo ponto). Isso é por sua conta. </li></ul>
  17. 17. Dois cenários <ul><li>Scripts </li></ul><ul><ul><li>Basta copiar os arquivos de uma determinada versão para o servidor de web </li></ul></ul><ul><ul><li>Você pode, inclusive, servir as páginas a partir de uma área de trabalho do CVS e atualizá-las com “update” </li></ul></ul><ul><li>Programas Compilados </li></ul><ul><ul><li>Você pode guardar os makefiles junto dos fontes no CVS </li></ul></ul><ul><ul><li>Você faz o build e o deployment </li></ul></ul>
  18. 18. Tags e Branches <ul><li>Você liberou a versão 1.0 do produto </li></ul><ul><li>Mas ela tinha um bug sério </li></ul><ul><li>Só que os fontes estão entre a 1.0 e a 1.1 </li></ul><ul><li>E você precisa consertar a 1.0 </li></ul><ul><li>Você faz um branch sobre o tag que você criou </li></ul><ul><li>Você trabalha no branch </li></ul><ul><li>Quando arrumar, faz o merge (ou não) </li></ul>
  19. 19. Gráfico de Revisões <ul><li>Estamos trabalhando na revisão 1.1.2.1 do arquivo “teste.py” (que faz parte da versão 1.0.1, do branch “testes”, sendo que a revisão 1.1 é parte da versão 1.0 e a 1.2 é a mais atual </li></ul>
  20. 20. Palavras Mágicas <ul><li>$Id$ - Nome do arquivo, revisão, autor, data </li></ul><ul><li>$Revision$ - Identificador da revisão </li></ul><ul><li>$Author$ - Login do usuário que fez o último check-in </li></ul><ul><li>$Log$ - Comentário do check-in </li></ul><ul><li>$Date$ - Quando essa versão foi acrescentada ao repositório </li></ul>
  21. 21. Só programas? <ul><li>Você pode guardar mais coisas no CVS além dos fontes </li></ul><ul><li>Documentação (cuidado com arquivos binários) </li></ul><ul><li>Imagens, scripts de ajuda, carga inicial de BD, dados de testes, etc. </li></ul><ul><li>Makefiles, arquivos de projeto (mas eu já disse isso) </li></ul>
  22. 22. Fazendo back-up <ul><li>O repositório não sabe nada sobre os clientes – só sabe do código e das revisões </li></ul><ul><li>Copiar os arquivos basta </li></ul>
  23. 23. Voltando o back-up <ul><li>Em caso de desastre, trazer os arquivos de volta resolve </li></ul><ul><li>Desenvolvedores fazem novo update e resolvem eventuais conflitos </li></ul>
  24. 24. Dúvidas?
  25. 25. Para saber mais <ul><li>“ O” CVS: http://www.cvshome.org </li></ul><ul><li>Tortoise CVS: http://www.tortoisecvs.org </li></ul><ul><li>WinCVS, MacCvsX, gCVS: http://www.wincvs.org </li></ul><ul><li>Version Management with CVS: http://www.cvshome.org/docs/manual/ </li></ul>

×