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.
Na medida em que vamos ganhando experiência no ramo, conseqüentemente
vamos descobrindo que desenvolver um sistema não é sentar na
cadeira e escovar bits em sua linguagem de programação predileta.
Desenvolver é uma fina arte que envolve diversas metodologias em
seus diferentes estados.
Imagine as seguintes situações:
Você criou uma obra-de-arte batizada
de sistema e a apresentou ao seu cliente, que como de praxe,
retrucou e lhe solicitou uma dúzia de mudanças em cima do que
foi feito. Você tentou convencê-lo de que o código atual é a melhor
forma de se criar o recurso desejado, mas nada adiantou. Lá vai
você para mais algumas horas de programação e, no final das contas,
apresenta a versão 2 do sistema ao cliente. Jóia! Ops... que nada,
o cliente não gostou das modificações e enfim deu o braço a torcer.
Sua primeira versão do sistema será a adotada pela empresa. Ihhh...
mas e agora, sobrescrevi a versão original pela modificada,
vou ter que "reprogramar" o sistema pela segunda vez
para retornar ao seu estado inicial.
Você está programando um sistema em conjunto e Joãozinho,
ao modificar seu programa original, adicionou código "bugado"
em seu arquivo, mas como ele achou que estava tudo OK, salvou
e foi embora pra casa. Ihhh... tem tanto código misturado por
aí que você vai ter que programar tudo de novo né?
Você está desenvolvendo um sistema e quer distribuí-lo
pra galera da sua faculdade, mas é um baita transtorno ter
de fazê-los baixar todos os arquivos novamente a cada nova
release anunciada.
Bom, para resolver essas e várias outras situações constrangedoras
que o desenvolvimento de sistema nos proporciona, podemos utilizar
o extraordinário CVS (sistema de controle de versão).
O CVS nos permite manter versões antigas de arquivos, logs de
quem, quando e por quê alterou determinado arquivo, etc. Existem
outros softwares de controle de versão para Linux, como o RSS e
o SCCS, mas nenhum deles se compara ao CVS em termos de
quantidade de recursos. Continue lendo esse artigo que você
descobrirá o por quê.
[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/