Controlando projetos com o fantástico CVS

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.

[ Hits: 124.548 ]

Por: Fábio Berbert de Paula em 13/07/2004 | Blog: https://fabio.automatizando.dev


Enviando os arquivos para o servidor CVS



Vamos imaginar que a máquina onde fizemos as configurações anteriores tenha o endereço IP 10.0.0.1. Estamos em nossa máquina (remota) e queremos efetuar login no servidor CVS. A primeira coisa a fazer é definir a variável de ambiente CVSROOT, que será usada efetivamente pelo comando "cvs":

$ export CVSROOT=:pserver:carachata@10.0.0.1:/var/lib/cvs

Definimos CVSROOT com os seguintes parâmetros:
  • pserver - método de autenticação no servidor CVS.
  • carachata - usuário do repositório.
  • 10.0.0.1 - IP do servidor.
  • /var/lib/cvs - caminho do repositório.

Você também pode fazer com que essa variável fique permanentemente atribuída adicionando a seguinte linha ao seu ~/.profile:

export CVSROOT=:pserver:carachata@10.0.0.1:/var/lib/cvs

Feito isso, vamos efetuar login no servidor:

$ cvs login
CVS password: ********

Agora vamos jogar nossos arquivos para o servidor. O diretório que contém meu projeto original está em /home/fabio/projetos/helloworld. Para fazer o servidor CVS importar os arquivos do projeto, usamos o comando:

$ cd /home/fabio/projetos/helloworld
$ cvs import helloworld helloworld hello01 start


Ou seja, importamos o diretório helloworld para /var/lib/cvs/helloworld no servidor, onde o nome do módulo fica sendo helloworld e sua versão, hello01. O sistema também abrirá um arquivo de log na tela, digite a mensagem que identifica o log do que você está fazendo e dê um :x para salvar e sair.

Se por ventura surgir uma nova versão dos arquivos em seu diretório e você precisar subí-los novamente, repita o comando acima, mas dessa vez sem o "start" e usando uma nova versão para o sistema:

$ cvs import helloworld helloworld hello02

Note que agora estamos na versão hello02 do sistema.
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Configuração do servidor CVS
   3. Enviando os arquivos para o servidor CVS
   4. Manuseando arquivos
   5. Clientes gráficos
Outros artigos deste autor

Firefox 2 e seu recurso de proteção contra Web Phishing

Organizando projetos com a classe FastTemplate (parte 2)

Interfaces Gráficas no Linux

EAuthenticator - Clone do Google Authenticator para Linux

O Surgimento do Linux

Leitura recomendada

Configuração do Autofs

Diferenças entre o sistema de arquivos do Windows e Linux

Recuperando arquivos deletados em partições ReiserFS

Configuração de Servidor NFSv4 no CentOS 6

NFS rápido e direto usando Slackware 12

  
Comentários
[1] Comentário enviado por wronieri em 13/07/2004 - 10:36h

Excelente artigo vai ser de grande utilidade para o meu TCC da faculdade ;-)

[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.

[3] Comentário enviado por jeffestanislau em 13/07/2004 - 18:03h

Hehehe.. grande fábio..
Seu pensamento sempre adiante em relação aos pequenos mortais... rs rs rs

Párabens!!!
[]´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?

[]'s

Renato

[6] Comentário enviado por Czuber em 14/07/2004 - 15:34h

Legal, gostei bastante do artigo, eu vi que dá para acessar por ssh também, se alguém quiser conferir:

$ export CVS_RSH=ssh
$ cvs -z3 -d:ext:login@10.0.0.1:/var/lib/cvs co modulename

Pena que eu preciso me conectar em um servidor cvs e não consigo de jeito nenhum!
Sempre dá timeout depois que eu ponho a senha!
[]s

[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.

[]'s

[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:

ln -s libtclx.x.so libtcl.so

[]'s

[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.

[11] Comentário enviado por dudous em 16/07/2004 - 12:10h

Parabéns pelo artigo! Bastante elucidativo.
E boa dica essa do subversion !
Não conhecia. Estou dando uma olhada agora.

[12] Comentário enviado por renatoriolino em 16/07/2004 - 17:01h

Fabio,

Obrigado pela resposta. Mais uma coisinha:

O CVS serve para manter arquivos binários também? Ou apenas arquivos texto?

Obrigado.

[]'s

Renato

[13] Comentário enviado por fabio em 16/07/2004 - 23:10h

Renato,

Qualquer tipo de arquivo, desde txt até imagens.

[]'s

[14] Comentário enviado por cesarcardoso em 18/07/2004 - 15:38h

Só lembrando que em arquivos binários o CVS só consegue dizer quando foi modificado, não o que foi modificado.

[15] Comentário enviado por tchebraga em 19/07/2004 - 09:56h

+ uma coisa bacana do subversion, :-) ele permite controlar arquivos binários tb :-) (fazer diff inclussive).

[16] Comentário enviado por MarcioRM em 19/07/2004 - 10:23h

Soh para acrescentar outra interface eh o LinCVS (www.lincvs.org)
Na minha opiniao a melhor :D

Falow

[17] Comentário enviado por jeff.chaves em 29/07/2004 - 16:31h

É isso ai, esse artigo é maravilhoso, mas na empresa que trabalho o servidor é Widows, como faço para configura-lo e etc???

[18] Comentário enviado por AndreC em 02/08/2004 - 13:00h

Muito bacana o artigo! Só estou tendo problemas para configurar
o Servidor de CVS no Fedora...

Não consegui encontrar os arquivos: inetd.conf e cvs-pserver.conf

Estou com a versão 1.11.17 instalada...

Alguém já conseguiu configarar no Fedora Core 2?

[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

[20] Comentário enviado por engos em 24/08/2004 - 15:34h

Estou tentando configurar no Red Hat 9 e estou com o mesmo problema do AndreC... em qual distro essa configuração funciona?

[21] Comentário enviado por alphainfo em 14/09/2004 - 12:17h

Ei Rapaziada do VOL!

Gostaria apenas de comentar q existem outros clientes gráficos bons para o CVS, como o Eclipse.

[]'s

Daniel Freire

[22] Comentário enviado por fernandoamador em 16/01/2005 - 05:47h

Ótimo artigo.

[23] Comentário enviado por josir em 17/02/2005 - 17:26h

Valeu Fábio. Me ajudou bastante!
Josir

[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?

[25] Comentário enviado por removido em 28/04/2005 - 14:08h

fabio, ficou show de bola!
parabens mais uma vez

[26] Comentário enviado por jmarceno em 02/05/2005 - 14:25h

Muito bom o artigo, eu sempre quis saber do que se tratava este tão falado CVS e vc conseguiu sanar todas as minhas dúvidas...Parabéns...

[27] Comentário enviado por kandrus em 08/05/2005 - 08:21h

Valew pelo artigo tava apanhando para implantar o CVS no linux e com o artigo consegui blz

Valew

[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

[29] Comentário enviado por alesandroramos em 07/06/2005 - 16:40h

Parabens Fabio, o artigo foi uma mao na roda Fabio + alguem pode me dizer de onde veio esse erro
CONNECTION REFUSED

[30] Comentário enviado por a.fernando em 28/10/2005 - 10:15h

Ótimo artigo!

Me ajudou bastante a entender como funciona e onde usar o CVS

[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.

Parabéns pelo artigo.

[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.

[]'s

[33] Comentário enviado por removido em 12/08/2006 - 15:02h

esta 10 o artigo, parabens

[34] Comentário enviado por xALEXANDRE em 15/08/2006 - 19:48h

Muito bom.
Parabéns, artigo completo e objetivo.

[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

[36] Comentário enviado por stalin em 06/03/2008 - 10:09h

Eu instalei o cvs pelo terminal passo-passo, quando eu vou testa no Eclipse da erro de conexão, o que eu devo fazer?

Valeu

[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/

[38] Comentário enviado por stalin em 11/03/2008 - 09:14h

Vc acha que eu devo desabilitar o firewall para usar o cvs

[39] Comentário enviado por stalin em 11/03/2008 - 09:20h

quando eu coloco

diogo@Test/var/lib/cvs$ export CVSROOT=:pserver:diogo@127.0.0.1:/var/lib/cvs
diogo@Test:/var/lib/cvs$ cvs login
Logging in to :pserver:diogo@127.0.0.1:2401/var/lib/cvs
CVS password:
cvs [login aborted]: unrecognized auth response from 127.0.0.1: cvs [pserver aborted]: /var/lib/cvs: no such repository

O que eu devo fazer

[40] Comentário enviado por luizhacker em 08/05/2008 - 11:56h

Ao tentar obter ao diretório para manipulação dos arquivos de um projeto, usando a conta Root, obtive a seguinte mensagem:
"root not alowed"

Como usuário comum isso não acontece.

O que devo fazer?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts