1 / 14

Concurrent Versions System

Concurrent Versions System. Leandro Augusto de Oliveira laugusto@inf.pucrs.br. Sumário. Introdução Por que usar o CVS? Criando um projeto com CVS Comandos básicos Adicionando, removendo e renomeando arquivos e diretórios Revisões e tags Desvios Substituição de palavras chave Conclusões.

morey
Download Presentation

Concurrent Versions System

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Concurrent Versions System Leandro Augusto de Oliveira laugusto@inf.pucrs.br

  2. Sumário • Introdução • Por que usar o CVS? • Criando um projeto com CVS • Comandos básicos • Adicionando, removendo e renomeando arquivos e diretórios • Revisões e tags • Desvios • Substituição de palavras chave • Conclusões

  3. Introdução • CVS é um sistema de controle de versões concorrente. • É um software de código aberto, com licença GPL. • Está disponível em www.cvshome.org

  4. Por que usar o CVS? • Problemas em fazer controle de versões manualmente: • Utiliza muito espaço em disco • Conduz facilmente a erros • CVS salva o arquivo e todo seu histórico de modificações em um único arquivo, armazenando apenas as diferenças entre as versões. • CVS permite que vários desenvolvedores trabalhem sobre o mesmo arquivo simultaneamente. Ele se encarrega de “mesclar” as versões, relatando conflitos.

  5. Por que usar o CVS? • Ajuda a rastrear bugs. • Por exemplo, quando o código é modificado, é comum que o programador introduza erros que somente são detectados muito tempo após a alteração. • Com CVS, é possível recuperar uma versão anterior que funcione para identificar a causa do erro. • Também permite verificar a produtividade de um programador, através do histórico de modificações.

  6. Criando um projeto com CVS • A variável de ambiente $CVSROOT deve apontar para o diretório onde está localizado o repositório do CVS. • Para adicionar um projeto ao repositório • $ cd wdir • $ cvs import rdir gaph start • $ cd .. • $ cvs checkout rdir • $ rm -r wdir

  7. Comandos Básicos • Para recuperar um projeto chamado xuxu: • $ cvs checkout xuxu • Para gravar suas alterações no repositório: • $ cvs commit • Para recuperar as alterações no projeto atual: • $ cvs update

  8. Adicionando, removendo e renomeando arquivos e diretórios • Para adicionar um arquivo no repositório • $ cvs add arquivo.c • Para remover um arquivo • $ cvs remove arquivo.c • Para remover um diretório remova todos os arquivos dentro dele. A opção -P nos updates e checkouts para retira os diretórios vazios. • Para renomear arquivos: • $ mv oldnew • $ cvs remove old • $ cvs add new • $ cvs commit -m "Renamed old to new" oldnew

  9. Revisões e tags • Cada arquivo tem um número de revisão associado. Para mudar o número de revisão do arquivo: • $ cvs commit -r 2.0 • Para atribuir uma tag à revisão atual: • $ cvs tag rel-0-4 arquivo.c • Para verificar as tags de um arquivo • $ cvs status -v arquivo.c • Para recuperar a revisão com uma determinada tag: • $ cvs checkout -r rel-1-0 projeto

  10. Desvios • Suponha que foi lançada a versão 1.0 do software e já se está trabalhando na 2.0. Porém, são encontrados bugs na versão 1.0, e demorará muito até que a próxima versão seja lançada. • Um desvio na linha natural de desenvolvimento do software terá que ser feito. • As correções feitas podem ser necessárias também na versão 2.0.

  11. Desvios • Para criar um desvio: • $ cvs tag -b rel-1-0-patches • Será preciso escolher o desvio: • $ cvs checkout -r rel-1-0-patches projeto • Ou, se já existe uma cópia: • $ cvs update -r rel-1-0-patches • Para “mesclar” o desvio na versão final • $ cvs checkout projeto # Recupera última revisão • $ cvs update -j R1fix m.c # Mescla desvios • $ cvs commit -m "Included R1fix" # Cria revisão 2.1.

  12. Substituição de palavras chave • $Author$ --> login do último a alterar o arquivo. • $Date$ --> Data e hora da revisão. • $Header$ --> Um cabeçalho contendo o caminho do arquivo no repositório, a revisão, a data, o autor, o estado, e o responsável pelo lock. • $Id$ --> Mesmo que $Header$, mas sem o caminho para o arquivo. • $Name$ -->A tag usada para recuperar o arquivo. Por exemplo, ao executar o comando cvs co -r first, a palavra-chave expande para `Name: first'.

  13. Substituição de palavras chave • $Locker$ --> Login de quem trancou o arquivo. • $Log$ --> A mensagem de log informada no commit, precedida de um cabeçalho contendo o caminho do arquivo no repositório, o número da revisão, o autor e a data. Mensagens de log existentes não são substituídas. A nova mensagem de log é inserida no final das anteriores • $Revision$ --> O número da revisão. • $Source$ --> Caminho do arquivo no repositório. • $State$ --> Estado da revisão (cvs admin -s). Ex.: Exp (experimental), Stab (Estável), Rel(Release). • Para ver o status, use cvs log

  14. Conclusões • Facilita a colaboração entre desenvolvedores, permitindo que dois ou mais desenvolvedores trabalhem de forma independente sobre o mesmo código fonte • Permite identificar e resolver conflitos nos fontes • Permite verificar a produtividade de um desenvolvedor • Facilita o gerenciamento de releases do código • Pode ser usado para qualquer linguagem. Isto inclui VHDL. • Para maiores esclarecimentos consulte o site do CVS: • http://www.cvshome.org/

More Related