Este artigo nos apresenta ao CVS, um fantástico sistema de controle de versão. Aqui aprenderemos a instalar e configurar um repositório, alimentar o repositório com arquivos, manipular os arquivos lá publicados e por fim, faremos um tour pelos clientes gráficos de CVS, aprendendo a instalar e configurar clientes para Linux, Windows e Mac.
Se agora você está em outra máquina e deseja obter uma cópia do
seu diretório de trabalho CVS, digite:
$ cvs checkout helloworld
Onde "helloworld" é o nome do módulo que importamos para dentro
do CVS na primeira oportunidade.
Beleza, já temos a cópia do sistema em disco, vamos trabalhar. Após modificar meia dúzia de arquivos, você acha que está hora de enviar as alterações para o servidor. Para isso, digite:
$ cvs update
O comando acima marca com a flag "M" os arquivos que foram modificados por você. Para enviar as diferenças para o servidor, use:
$ cvs commit
Vale lembrar que a casadinha update/commit, além de enviar os arquivos modificados para o servidor, também busca as alterações realizadas pelos demais programadores.
Ótimo, agora você acabou de criar um arquivo e deseja adicioná-lo ao projeto:
$ cvs add arquivo.php
E também há um arquivo que não é mais necessário, vamos removê-lo? Primeiro exclua-o do diretório atual:
$ rm velho.php
E em seguida avise ao CVS:
$ cvs remove velho.php
Faça as mudanças acontecer:
$ cvs commit
Se o seu parceiro de projeto executar um "cvs update" na máquina dele, todas as atualizações realizadas pelo seu "cvs commit" serão automaticamente espelhadas no diretório de trabalho dele. Isso vale para tudo e todos! O CVS é multi-usuário.
Bom, uma vez encerradas as operações com o CVS, termine sua sessão com:
[2] Comentário enviado por agk em 13/07/2004 - 14:27h
Parabéns Fabio, muito bom o artigo, não sabia que o cvs era tão poderoso para controlar meus projetos, alterações e tudo mais. Vou instalar aqui e começar a usar, acho que isso vai me ser muito útil para controlar os projetos que estou fazendo no trabalho e preciso ver alguma coisa em casa ou terminar.
Valeu D+ o artigo.
[ ]'s.
[4] Comentário enviado por thiagosc em 14/07/2004 - 07:42h
Muito bom mesmo esse artigo, ontem mesmo estava trocando uma idéia com o Jeffestanislau sobre esse assunto, e hoje vejo esse excelente artigo no site. Parabéns.
[5] Comentário enviado por renatoriolino em 14/07/2004 - 13:55h
Ótimo artigo, parabéns!
Só uma pergunta:
O que aconteceria se duas pessoas alterassem o mesmo arquivo fonte?
Tipo, a primeira iria fazer o update e tudo beleza, mas e quanto a segunda? O arquivo alterado pela segunda pessoa iria sobrescrever as alterações feitas pela primeira?
[7] Comentário enviado por wronieri em 15/07/2004 - 10:45h
Fabio instalei o gcvs o pacote não acusou nenhuma dependencia mas ao executar á o seguinte erro "gcvs: error while loading shared libraries: libtcl.so.0: cannot open shared object file: No such file or directory" estaria faltando este libtcl ou seria outro problema?
[8] Comentário enviado por fabio em 15/07/2004 - 17:58h
Renato,
O que acontece é que o CVS, antes de sobrescrever o arquivo que foi atualizado por outra pessoa, te acusa essa mensagem e exibe as diferenças entre as versões usando o diff. A partir daí, se você quiser pode realmente sobrescrever o arquivo ou criar uma nova versão pra ele baseado nas mostras do diff.
[9] Comentário enviado por fabio em 15/07/2004 - 18:01h
Ronieri,
Você precisa ter o TCL instalado, mais precisamente o pacote tclx.x-dev. Se já o tiver instalado, pode estar acontecendo um problema de link. Entre em /usr/lib e veja se existe o arquivo libtclx.x.so, daí basta criar um link para o arquivo que está faltando assim:
[10] Comentário enviado por tchebraga em 16/07/2004 - 09:40h
Parabéns muito legal o artigo, e é impresionante como tem gente que ainda nem sabe o que é controle de versão, mas isso é outro assunto. O cvs é um projeto muito bom e útil, no entanto bem antigo e possui algumas deficiências, como não garantir transações atômicas e não permitir renomear repositorios. Existe O subversion (http://subversion.tigris.org) que chegou a versão 1.0 e está muito estável, vale resaltar que é 1.0 mas teve vários RC´s antes disso, o que garantiu a estabilidade do produto, pode se disser que é uma continuação do bom e velho CVS. Vale a pena mesmo dar uma olhada no subversion.
[19] Comentário enviado por clicksoft em 10/08/2004 - 17:46h
Ola , instalei o CVS no kurumin como o artigo ensina, instalei o gcvs, rodei o gcvs na mesma maquina (servidor) configurei "cjunior@192.168.0.1:/var/lib/cvs" .
Porém ao tentar efetuar o login acontece o seguinte erro :
********************
cvs login
cvs login: /var/lib/cvs/CVSROOT/config: unrecognized keyword 'UseNewInfoFmtStrings'
cvs login: can only use pserver method with `login' command
cvs [login aborted]: CVSROOT: /var/lib/cvs
*********************
alguem poderia me ajudar ???
obrigado ,
carlos junior
cjuniorig@ig.com.br
[24] Comentário enviado por kamarada10 em 03/03/2005 - 08:42h
No caso de arquivos binários, o cvs faz uma auditoria informando além de qdo foi modificado quem efetuou a modificação? No caso de arquivos de cocumentação de projetos (.doc) é considerado binário também?
[28] Comentário enviado por osvaldocpd em 10/05/2005 - 11:22h
bom dia a todos, Alguem poderia me enviar passo a passo como configurar Servidor PDC tebnho o linux 7.3 e as stações é 98 2.000 e xp preciso que as estações acessam arquivos no sevidor linux
Se algume souber e poder me passar ficarei grato
at. Osvaldo
[31] Comentário enviado por FelipeAbella em 16/07/2006 - 20:31h
renatoriolino: Se duas pessoas editarem o mesmo arquivo, o cvs irá mesclar os dois, mas as vezes gera um conflito, nunca testei como resolve um conflito.
[32] Comentário enviado por arcanjo_mg em 24/07/2006 - 17:33h
Parabéns, artigo muito bom, CVS é algo que eu ja queria conhecer mais ainda estava obscuro pra mim. Esse artigo sera um ponta-pé inicial para que eu aprenda mais sobre o assunto.
[35] Comentário enviado por diromi em 29/12/2006 - 22:34h
Fabio muito bom seu artigo!!!
Gostaria de saber se vc sabe como faço para o CVS colocar a senha do CVS automaticamente a mesma senha que o usuario tem no Active Diretory do Windows de forma a melhorar a segurança não to conseguindo fazer isso e queria uma dica se fosse possivel..
Meu e-mail diromi@oi.com.br
Valeu
Diogo
[37] Comentário enviado por stalin em 07/03/2008 - 11:38h
Quando eu executo: teste@test-4:/home/cvs$ cvs -d :pserver:diogo@127.0.0.1:/home/cvs
Oque devo fazer
Usage: cvs [cvs-options] command [command-options-and-arguments]
where cvs-options are -q, -n, etc.
(specify --help-options for a list of options)
where command is add, admin, etc.
(specify --help-commands for a list of commands
or --help-synonyms for a list of command synonyms)
where command-options-and-arguments depend on the specific command
(specify -H followed by a command name for command-specific help)
Specify --help to receive this message
The Concurrent Versions System (CVS) is a tool for version control.
For CVS updates and additional information, see
the CVS home page at http://www.nongnu.org/cvs/ or
the CVSNT home page at http://www.cvsnt.org/