CVS Instalação e Configuração

Este Artigo descreve de forma bem simples e prática a Instalação e Configuração do cvs.

O CVS, ou Concurrent Version System (Sistema de Versões Concorrentes) permite que se trabalhe com diversas versões de arquivos organizados em um diretório e localizados local ou remotamente, mantendo-se suas versões antigas e os logs de quem e quando manipulou os arquivos. É especialmente útil para se controlar versões de um software durante seu desenvolvimento, ou para composição colaborativa de um documento.

A exemplo de outros softwares usados neste projeto, o CVS pode ser baixado gratuitamente e tem o seu código aberto (http://ximbiot.com/cvs/).

Funcionamento

O CVS utiliza uma arquitetura cliente-servidor: um servidor armazena a(s) versão(ões) atuais do projeto e seu histórico, e os clientes se conectam a esse servidor para obter uma cópia completa do projeto, trabalhar nessa cópia e então devolver suas modificações. Tipicamente, cliente e servidor devem estar conectados por uma rede local, ou pela Internet, mas o cliente e o servidor podem estar na mesma máquina se a configuração do CVS for feita de maneira a dar acesso a versões e histórico do projeto apenas a usuários locais. Geralmente um servidor CVS roda em um Sistema Operacional Unix(ou Linux), no entanto, o Cliente CVS (WinCVS ou LinCVS) pode rodar em qualquer Sistema Operacional.

Os Projetos controlados pelo CVS podem ser formado por Módulos, assim sendo, o CVS permite a um usuário ou grupo de usuários que editem esses Módulos de maneira concorrente. Ao confirmar as alterações, o servidor faz um merge das mesmas. Caso o merge não ocorra o servidor avisa que existe algum conflito e que é necessária uma intervenção humana. Se a validação alteração for bem sucedida, o número de versão de cada cliente arquivo envolvido é incrementado, e o servidor CVS escreve uma linha de observação (fornecida pelo usuário), a data e o autor das alterações em seus arquivos de log.

Clientes podem comparar diferentes versões de um arquivo, pedir um histórico completo das alterações, ou baixar uma determinada versão do projeto, ou de uma data específica, não necessariamente a versão mais atual. Muitos projetos de código aberto permitem acesso para leitura anônimo, o que significa que qualquer pessoa pode baixar ou comparar versões sem necessidade de autenticação; somente para salvar mudanças é necessário informar a senha nesses casos.

Clientes também podem usar o comando "update" para manter suas cópias locais atualizadas com a última versão do servidor. Isso elimina a necessidade de se fazer diversos downloads de todo o projeto.

O CVS também pode manter diferentes "estados" do projeto. Por exemplo, uma versão do software pode ser um desses estados, usado para correção de bugs, enquanto outra versão, que está realmente sob desenvolvimento, sofrendo alterações e tendo novas funcionalidades implementadas, forma o outro estado.

Um servidor CVS pode gerenciar diversos módulos; ele armazena todos os módulos administrados por ele em seu repositório. A cópia do módulo que foi baixada para um cliente é chamada cópia de trabalho. Em cada pasta do Projeto o CVS cria uma pasta de controle, com alguns arquivos dentro.

Algumas Limitações

Alguns dos principais desenvolvedores que trabalharam no CVS são atualmente responsáveis pelo Subversion (SVN), lançado no começo de 2004 e cujo objetivo é substituir o CVS ao lidar com algumas de suas limitações.

Instalação e Configuração

Faremos uma abordagem mais simples e direcionada à forma de instalação e configuração do CVS, no entanto, os testes foram realizados em máquinas que utilizam o Windows, Linux e Unix Solaris.

Forma de acesso:

Nota:

  1. Nos exemplos abaixo escolheremos o pserver (Password Server) como método de acesso. O pserver é o daemon que fica escutando na porta 2401;
  2. Para a autenticação foi criado o grupo cvs (no Servidor) e todos os usuários autorizados a entrar no repositório (/usr/CVS) foram incluídos nesse grupo;
  3. O repositório até o momento não é nada a mais que um diretório num local pré-determinado e abaixo de /usr/CVS/(aqui), onde ficarão os projetos;
  4. Para certificarmos que o servidor está configurado corretamente e escutando na porta tcp 2401, podemos tentar acessar via browser o endereço http://seuservidor:2401/ (se estiver ok aparecerá uma mensagem de erro do próprio cvs)

Windows(lado servidor):

cvsservice.exe cvslock.exe

Solaris(lado servidor):

cvspserver stream tcp nowait root /opt/csw/bin/cvs grupo -f –allow- root=/usr/CVS pserver

Obs: /usr/CVS – diretório onde o repositório foi criado

grupo – geralmente “cvs” ou que tenham permissão ao “/usr/CVS”

Linux(lado servidor):

service cvspserver { disable = yes socket_type = stream protocol = tcp wait = no env = HOME=/usr/CVS /* local do Repositorio */ user = roo group = cvs /* grupo de acesso ao Repositório */ server = /usr/bin/cvs /*local onde está instalado o cvs */ server_args = --allow-root=/usr/CVS }

Inicializando um Repositório

Após criarmos o diretório no Servidor que funcionará como um Repositório, devemos inicializá-lo:

cvs init

Obs: note que após esse comando o cvs cria uma pasta CVSROOT dentro do seu repositório, com alguns arquivos de controle;

Configurando variáveis de Ambiente

Geralmente para efetuarmos as conexões remotas utilizamos uma string, que pode ser armazenada na variável CVSROOT da seguinte forma:

set CVSROOT = :pserver:pedro@servidorcvs:/usr/CVS

ou

cvs -d :pserver:pedro@servidorcvs:/usr/CVS login

Caso queira instalar o Servidor CVS na sua máquina local, a variável CVSROOT ficará assim:

set CVSROOT=C:\CVSREP // com Windows setenv CVSROOT=/usr/CVSREP //no Linux

Operações com o CVS

Após definirmos a string de conexão com o servidor, podemos realizar a autenticação ou outras operações do CVS.

cvs login //opção login entra no cvs

então aparecerá:

cvs password: //nesse caso (usando o pserver) será a senha do usuário no servidor

outras operações com o cvs:

cvs checkout algum_projeto //baixa o projeto do servidor para um local cvs import algum_projeto //colocando o projeto no repositório(servidor)

Hands-On de CVS

Para utilizarmos o CVS usaremos os softwares:

  1. Configuração do Servidor Remoto CVS:
cvspserver stream tcp nowait root /opt/csw/bin/cvs grupo -f –allow- root=/usr/CVS pserver
  1. Conferir se o Servidor CVS está rodando na porta 2401:
http://servidorcvs:2401:

Mensagem que deverá aparecer no browser:

cvs [pserver aborted]: bad auth protocol start: GET / HTTP/1.1
  1. Configuração da variável de ambiente CVSROOT:
setenv CVSROOT :pserver:seulogin@servidorcvs:2401:/usr/CVS //no linux
set CVSROOT=:pserver:seulogin@servidorcvs:2401:/usr/CVS //no Windows
  1. Efetuando operações no CVS:
c:\>cvs init //após definida a variável CVSROOT o cvs irá inicializar o seu repositório

Vamos então carregar o Projeto para o repositório:

c:\>cd Teste //diretório do Projeto c:\>cvs import //importar o Projeto para o repositório do cvs.

Ex: Teste diretório de trabalho(lembre-se CVSREP é o diretório onde estará localizado o repositório)

C:\>cd Teste //entrar no diretório de trabalho: C:\Teste>cvs checkout Teste //Teste nome do Projeto

Obs: o Projeto Teste será baixado para o seu diretório de trabalho local, isto é, será realizado uma cópia do projeto.

  1. Alterando o conteúdo dos arquivos

Agora após o checkout do projeto, seus arquivos estarão iguais aos do repositório, sendo assim vamos alterar algum arquivo para que possamos efetuar uma atualização em nosso repositório.

Ao realizarmos um commit, automaticamente o próprio CVS faz anotações nos arquivos sobre release ou versão eusuário nos arquivos que foram carregados. Note também que o CVS cria subdiretórios de controle com o nome CVS em todos os subdiretórios do Projeto.

Links úteis:
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados