Servidor CVS: Instalando, configurando e gerenciando no Linux

Neste artigo procurarei mostrar de maneira prática e eficiente como instalar, configurar e gerenciar um servidor CVS no Linux. Nele serão abordados os seguintes temas: introdução; instalando, configurando e administrando o servidor CVS no Linux; CVSROOT; clientes CVS; bibliografia.

[ Hits: 106.677 ]

Por: Cristian Alexandre Castaldi em 04/09/2008


Movendo arquivos e diretórios



O recomendado para mover ou renomear arquivos no CVS é utilizar o comando "cvs remove" e depois "cvs add" utilizando-se de mensagens avisando que os arquivos estão sendo movidos ou renomeados. Este método preservará o histórico e permitirá uma reversão para as versões mais antigas do arquivo, observe:

Entre no diretório no qual você ira mover/renomear o arquivo:

cd roder/geral
$ mv texto002.txt textoRenomeado002.txt


Agora remova o arquivo antigo que você acabou de mover/renomear do CVS.

cvs remove texto002.txt
cvs remove: scheduling `texto002.txt' for removal
cvs remove: use 'cvs commit' to remove this file permanently

Adicione no CVS o arquivo movido/renomeado:

cvs add textoRenomeado002.txt
cvs add: scheduling file `textoRenomeado002.txt' for addition
cvs add: use 'cvs commit' to add this file permanently

Comite as mudanças no CVS informando que o arquivo está sendo movido/renomeado.

cvs commit
cvs commit: Examining .
Movendo /roder/geral/texto002.txt /roder/geral/textoRenomeado002.txt

CVS: --------------------------------------------------
CVS: Enter Log. Lines beginning with `CVS:' are removed automatically
CVS:
CVS: Committing in .
CVS:
CVS: Added Files:
CVS: textoRenomeado002.txt
CVS: Removed Files:
CVS: texto002.txt
CVS: --------------------------------------------------

Saia [ESC] e salve x.

Removing texto002.txt;
/home/cvs/RODER/Geral/texto002.txt,v <-- texto002.txt
new revision: delete; previous revision: 1.1
done
RCS file: /home/cvs/RODER/Geral/textoRenomeado002.txt,v
done
Checking in textoRenomeado002.txt;
/home/cvs/RODER/Geral/textoRenomeado002.txt,v <-- textoRenomeado002.txt
initial revision: 1.1
done

Pronto, o arquivo texto002.txt foi renomeado para textoRenomeado002.txt.

O recomendado para mover diretórios é criar o diretório no novo destino e usar o comando "cvs add" para adicioná-lo. Depois devemos usar as técnicas descritas acima para mover os arquivos para o novo destino.

Vamos criar o diretório arquivo para receber os arquivos texto do diretório /roder/geral/prefeitura.

cd roder/geral
$ mkdir arquivo
$ cvs add arquivo

Directory /home/cvs/roder/geral/arquivo added to the repository

Agora vamos mover todos os arquivos do diretório /roder/geral/prefeitura para /roder/geral/arquivo.

mv -fv /roder/geral/prefeitura/* /roder/geral/arquivo/
`/RODER/Geral/Prefeitura/0103.TXT' -> `/RODER/Geral/arquivo/0103.TXT'
`/RODER/Geral/Prefeitura/0104.txt' -> `/RODER/Geral/arquivo/0104.txt'
`/RODER/Geral/Prefeitura/0105.TXT' -> `/RODER/Geral/arquivo/0105.TXT'

Entre no diretório /roder/geral/prefeitura e use o comando "cvs remove":

cd roder/geral/prefeitura
$ cvs remove

cvs remove: Removing .

Entre no diretório /roder/geral/arquivo e adicione os arquivos movidos:

cd roder/geral/arquivo
$ cvs add *

cvs add: cannot add special file `CVS'; skipping
cvs add: scheduling file `0103.TXT' for addition
cvs add: scheduling file `0104.txt' for addition
cvs add: scheduling file `0105.TXT' for addition

Agora comite os arquivos no CVS:

cvs commit

Arquivos movidos do diretório /roder/geral/prefeitura /roder/geral/arquivo
CVS: --------------------------------------------------
CVS: Enter Log. Lines beginning with `CVS:' are removed automatically
CVS:
CVS: Committing in .
CVS:
CVS: Added Files:
CVS: 0103.TXT 0104.txt 0105.TXT 0106.txt 010607.RET 010708.ret
CVS: 0108.txt 010808.ret 010908.txt 011007.ret 0111.txt 011107.ret
CVS: 020207.ret 020307.ret 020407.ret 0206.TXT 020608.ret
CVS: --------------------------------------------------

Tecle [ESC] e depois x para sair e salvar.

RCS file: /home/cvs/roder/geral/arquivo/1014.txt,v
done
Checking in 1014.txt;
/home/cvs/roder/geral/arquivo/1014.txt,v <-- 1014.txt
initial revision: 1.1
done

Observe que os arquivos vão sendo adicionados um a um no CVS.

Página anterior     Próxima página

Páginas do artigo
   1. 1. Introdução
   2. Instalando, configurando e administrando o servidor CVS no Linux
   3. Login e logout no servidor pserver
   4. Importando um novo projeto
   5. Baixando, sincronizando, editando e enviando arquivos para o servidor CVS
   6. Adicionando arquivos e diretórios no módulo do servidor CVS
   7. Removendo arquivos e diretórios no módulo do servidor CVS
   8. Movendo arquivos e diretórios
   9. Diferenças entre versões de arquivos, status e histórico
   10. Removendo um módulo do servidor CVS
   11. CVSROOT
   12. Clientes CVS
   13. Bibliografia
Outros artigos deste autor

Autenticando usuários

Trabalhando com coringas, filtros e expressões regulares no shell

Gerenciando quotas de disco

Criando, monitorando e terminando processos

Lynis: Sistema de auditoria e segurança para Linux

Leitura recomendada

Instalando o Opera e plugin Flash Player no Debian

Xine rodando arquivos .rm

Pebrot: Um cliente MSN (modo texto) muito eficiente

Os novos plugins do Compiz

Hugin - Criando fotos panorâmicas navegáveis

  
Comentários
[1] Comentário enviado por marcelo_10araujo em 04/09/2008 - 16:50h

massa, tah de parabéns

[2] Comentário enviado por grandmaster em 04/09/2008 - 21:58h

Hummm

Bem legal. Não conhecia.

Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br

[3] Comentário enviado por danilo.roger em 05/09/2008 - 15:10h

Muito bom mesmo! Utilizo o CVS e o SVN mas as informações sobre os produtos são sempre fragmentadas, um pedaço em um site e outro pedaço em outro lugar. Achei legal o fato de todas as informações estarem neste único artigo. Esperamos em breve um artigo seu sobre o SVN. Até mais!

[4] Comentário enviado por crildo em 05/09/2008 - 15:14h

Obrigado a todos... Comecei a ler o livro do Subversion hoje, em breve postarei o artigo de minha pesquisa sobre ele. Até mais e obrigado ao Viva o Linux pelo espaço.

[5] Comentário enviado por removido em 07/09/2008 - 14:32h

o crildo-banguela voltou......
seja bem-"revindo" cachorrão!
Grande trabalho, merece 10!
;-)

[6] Comentário enviado por removido em 09/09/2008 - 12:54h

Gostaria de saber porque quando dou o comando cvs login, depois de usar o export cvs ..., dá a mensagem de connection refuse. Será que ele não instalou o cvs server.
Instalei das duas formas a primeira foi atraves do tar e ./configure, make, etc . Na segunda foi através do apt-get. ambas não abrem as portas 2401 do computador, embora eu tenha descomentado o arquivo inet e services. Será que falta alguma coisa para abrir as portas.

[7] Comentário enviado por removido em 09/09/2008 - 14:23h

Ola a solução que eu encontrei por ai foi instalar o cvsd instalei. Mas agora a mensagem que tá dando é authorization failed :server 10.7.2.xxx rejected access to /home/cvs for user alex. Eu antes criei esse usuário (alex) no writers e dei uma senha para ele ,usando mkpasswd,e coloquei essa senha no passwd do diretorio de repositorios. Criei tambem a pasta cvs e o grupo cvs, coloquei o usuario no grupo cvs. quando uso o comando cvs -d :p:server:[email protected]:/home/cvs login e ponho a senha dá esse erro.

[8] Comentário enviado por crildo em 09/09/2008 - 15:02h

Acho que o problema está na configuração do inet...

Primeiro vamos ver aonde está o comando cvs
# find / -name cvs -print
/usr/share/doc/lm_sensors-2.10.0/doc/cvs
/usr/share/cvs
/usr/bin/cvs
/root/programas/cvs
/home/cvs
/var/lock/cvs
/var/cvs
/etc/pam.d/cvs

Como verificado acima o comando está em /usr/bin/cvs

Como instalei o CVS em um Red Hat EL5 usei o xinetd para configurar o meu por aqui e aquela do inetd é uma configuração antiga do CVS quando estava instalado no Debian.

No arquivo /etc/inetd.conf insira a seguinte linha:

# vi /etc/inetd.conf

cvspserver stream tcp nowait root /usr/bin/cvs cvs -f --allow-root=/home/cvs/seu repositorio pserver

Vê se agora você consegue!!

[9] Comentário enviado por crildo em 09/09/2008 - 15:11h

Alex você verificou as permissões de acesso para o seu diretório /home/cvs??? Dê uma olhada nas permissões do grupo...

[10] Comentário enviado por removido em 10/09/2008 - 12:46h

Primeiramente o programa está em /usr/bin/cvs . Eu uso o Ubuntu 8.04.. Depois comentei a linha atual do arquivo inet.conf, e coloquei a que voce pôs aí em cima com as devidas alterações. verifique as permissões e usuários e grupo do repositorio. as permissoes são totais exceto de escrita para outros. o proprietario e o grupo é o proprio cvs. no grupo cvs eu adicionei meu login de ubuntu. Mas ainda nao consegui entra no servidor cvs.

[11] Comentário enviado por crildo em 10/09/2008 - 14:22h

Verifique no seu repositório, imagino que seja /home/cvs, no diretório CVSROOT, o arquivo config. Se você estiver utilizando a autenticação pelo arquivo /etc/passwd o parâmetro SystemAuth deve estar setado como SystemAuth=yes.

Se você criou um arquivo passwd dentro do diretório CVSROOT o parâmetro deve ser setado como SystemAuth=no

Crie o arquivo passwd no CVSROOT, caso não tenha criado
usuário:senha:usuario_local

Exemplo:
alex:brasil2bolivia0:cvs

conforme as minhas configurações e a documentação do FocaLinux pode ser isso... Testa ai e me fala o que aconteceu...

# export CVSROOT=:pserver:[email protected]:/home/cvs
# cvs login

Até mais...

[12] Comentário enviado por removido em 10/09/2008 - 22:40h

Ola Cristiano . Eu fiz pelo SystemAuth=no, ai criei o arquivo passwd dentro de CVSROOT criei o usuário com a senha e no final:cvs , reiniciei tudo . Usei o export e ainda não funcionou.

[13] Comentário enviado por removido em 11/09/2008 - 09:16h

A mensagem de erro é essa:
Logging in to :pserver:[email protected]:2401/home/cvs
CVS password:
cvs login: authorization failed: server 10.7.2.xxx rejected access to /home/cvs for user alex

Meu arquivo inet.conf:
cvspserver stream tcp nowait root /usr/bin/cvs cvs -f --allow-root=/home/cvs/ pserver

o grupo cvs :
$ cat /etc/group|grep cvs
cvs:x:1002:alex

o arquivo /home/cvs/CVSROOT/passwd
alex:0203senhatola:cvs


Arquivo cvsd.conf em /etc/cvs.
RootJail /var/lib/cvsd

mais embaixo:

Listen * 2401
Repos /home/cvs

a versão do cvs é a 1.12.13-9 . Instalado a partir do apt-get

ps: atraves de outro pc , usando o eclipse, a mensagem que dá é que o usuário ou senha são inválidos.

[14] Comentário enviado por crildo em 11/09/2008 - 10:06h

Alex, você está usando Firewall ou o módulo SELinux? Este módulo é utilizado para controle de acesso. No Red Hat, quando tentava acessar dava o mesmo problema de autenticação. Como não conheço ainda este módulo de segurança eu desabilitei ele e adicionei a porta TCP:2401 e a UDP:2401 no firewall e o meu usuário cristian conectou. Então sugiro que você dê uma olhada nas regras do firewall e se você está usando o módulo SELinux. Imagino que a interface gráfica que você está usando é o Gnome... Se for vá até a aba Sistema -> Administração -> Nível de Segurança e Firewall e faça as mudanças e depois teste-as... Até mais...

[15] Comentário enviado por removido em 02/11/2008 - 01:43h

Oi me esqueci de falar a solução é que a porta 2401 (49²,hehehe ) não tava aberta. para abrir ela não basta apenas editar o inet.conf como mostrado. Como uso o ubuntu o inet.conf não abre sozinho é necessário então instalar o programa openbsd-inetd ele funciona como uma espécie de servidor do inet. Ai com o programa configurado ele vai la e lê o arquivo e abre as portas descomentadas.

[16] Comentário enviado por guuholi em 23/04/2013 - 13:48h

Sou novo nesta parte de cvs, ja subi svn e utilizei, porem como faço para acessar o CVS pelo wicvs e repositorios.. tenho esta duvida por nunca utilizei.. tem algum tutorial ou algo?


Contribuir com comentário