Índice
Este capítulo explica os requerimentos, instalação, configuração, segurança e diversos modelos de configuração de acesso para trabalho em grupo utilizados pelo CVS.
Não tome-o como uma referência completa ao uso e configuração do cvs, a pesquisa de sua info page é muito importante.
O CVS (Concurrent Version Software) permite que se organizem grupos de trabalho para desenvolvimento de projetos colaborativos. Um projeto pode ser desde um programa em C, documentação em equipe, etc. O uso do CVS é recomendado para qualquer desenvolvimento de projeto que tenha vários envolvidos trabalhando ao mesmo tempo.
Para cada mudança feita no programa, é pedido uma descrição dos trabalhos realizados e o sistema registra todas as modificações realizadas ao longo do desenvolvimento, permitindo voltar a uma versão anterior ou ver as mudanças entre elas facilmente.
Imagine uma situação onde você está desenvolvendo um programa de computador e após a última modificação ele para de funcionar. Com o CVS é possível ver o que foi modificado e voltar até a versão que estava funcionando para consertar o problema. No desenvolvimento de documentação e tradução o CVS também desempenha um papel importante, pois com ele o tradutor pode ver o que foi modificado entre a versão do documento original que ele usou para tradução e uma versão recente, traduzindo apenas as diferenças.
Uma seção de cvs é feita de modo interativo através do comando cvs. Por exemplo:
logar no sistema
- cvs login
baixar um projeto
- cvs checkout projeto
Cada comando do cvs será explicado em detalhes no decorrer deste capítulo.
A versão do CVS documentada no guia é a 1.11.1. As explicações aqui certamente serão compatíveis com versões posteriores deste programa.
O CVS é uma substituição do sistema RCS (Revision Control System) ele possui mais recursos e foi criado sendo compatível com o RCS.
A história do CVS (extraída de sua info page) é que ele foi iniciado a partir
de um conjunto de scripts shell escritos por Dick Grune
que foram postados ao grupo de notícias comp.sources.unix
no
volume 6 de Dezembro de 1986. Na versão atual não estão mais presentes shell
scripts porque muitos dos conflitos de resolução de algorítmos vem deles.
Em Abril de 1989, Brian Berliner fez o design e programou o CVS. Mais tarde, Jeff Polk ajudou Brian com o design do módulo CVS.
Através da lista de discussão info-cvs
. Para se inscrever
envie uma mensagem com o subject "subscribe" para
info-cvs-request@gnu.org
. Outra alternativa é através do
grupo de noticias (newsgroup) da Usenet
comp.software.config-mgm
.
Abaixo uma lista de características que tornam o CVS útil no gerenciamento de trabalhos em grupo:
Gerenciamento de projeto em equipe
Log de todas as alterações realizadas
Lock de arquivos, permitindo que somente uma determinada pessoa modifique o arquivo durante o desenvolvimento do projeto.
Histórico de todas as mudanças feitas, isto permite voltar a uma versão anterior em caso de problemas, e ver o que houve de errado com o código.
Os projetos podem ser hospedados em repositórios.
Podem ser criados diversas equipes de trabalho para cada repositórios, e
definidos quem terá ou não acesso ao repositório individualmente. O
desenvolvedor gleydson
, por exemplo, podem ter acesso ao
projeto x_beta
e não ter acesso a projeto
secret_y
.
Permissões de acesso individuais de leitura/gravação.
É possível criar um usuário com acesso anônimo sem dar uma conta no sistema.
Pode tanto utilizar o banco de dados de contas/senhas do sistema como um banco de dados de autenticação do próprio CVS.
Permite utilizar diversos "métodos" de acesso ao servidor: local, pserver, ext, etc. Cada um destes métodos será descrito a seguir.
Permite o acesso via ssh para usuários que já possuam conta na máquina servidora. Este método garante segurança no envio da senha criptografada (veja “Sniffer” para detalhes).
Permite visualizar facilmente o que foi modificado entre duas versões de um arquivo.
OBS: O CVS possui algumas limitações e falhas, uma delas que mais me faz falta é um suporte a protocolo pserver via ssh que resolveria o problema de tráfego em texto plano e gerenciamento de grupos com permissões diferenciadas.
Pacote:
Utilitários:
cvs
- Servidor/ferramenta cliente.
cvsbug
- Envia um bug sobre o CVS para a equipe de suporte.
rcs2log
- Converte arquivos de log do formato usado pelo
RCS para o CVS. Utilizado na migração
desta ferramenta para o CVS.
cvsconfig
- Usado pela Debian para
ativar/desativar o servidor pserver
. Pode também ser usado
o dpkg-reconfigure cvs
para desativar o servidor
pserver
e suas características.
cvs-makerepos
- Script da Debian que lê a
lista de repositórios de /etc/cvs-pserver.conf
, cria os
repositórios no local apropriado, corrige as permissões do diretório e adiciona
os repositórios no servidor pserver
.
cvs-pserver
- Script da Debian
responsável por fazer uma inicialização mais inteligente do servidor de CVS via
pserver
, leitura e processamento de repositórios, etc.
Normalmente ele é chamado a partir do arquivo
/etc/inetd.conf
.
Para executar o CVS é requerido pelo menos 3 vezes mais memória que o tamanho do maior arquivo usado pelo projeto (para realização de diffs entre as atualizações) e uma boa quantidade de espaço em disco.
Na realidade os requerimentos sobre o CVS dependem muito da aplicação que será desenvolvida. É recomendável que a máquina tenha memória suficiente para evitar o uso de swap, que degrada bastante a performance do sistema.
Problemas na inicialização do CVS são registrados no arquivo
/var/log/daemon.log
. Os logs de modificações feitas nos
arquivos de um projeto no CVS são armazenadas no formato
arquivo.extensão,v
(é adicionado o ",v" ao final do
arquivo para indicar que é um arquivo de controle de modificações do CVS).
O CVS pode ser baixado de http://www.cvshome.org/.
Para pacotes Debian basta apenas executar o comando:
apt-get install cvs
e seguir as telas de configuração para
ter o pacote CVS instalado e (opcionalmente) com o servidor
sendo executado. Você poderá a qualquer momento reconfigurar o
CVS executando: dpkg-reconfigure cvs
.
Uma boa documentação de referência é encontrada no pacote .
A única configuração requerida é quando o CVS é executado
via pserver
. Para isto, é necessária a seguinte linha no
arquivo /etc/inetd.conf
cvspserver stream tcp nowait.200 root /usr/sbin/tcpd /usr/sbin/cvs-pserver
Note que o parâmetro "200" indica quantas vezes o processo
CVS poderá ser executado por minuto no sistema. Caso esse
número seja excedido, o serviço será desabilitado e será necessário reiniciar o
servidor inetd com o comando killall -HUP
inetd
para reativar o servidor CVS pserver (veja “/etc/inetd.conf” capítulo do inetd para
detalhes). Ajuste este valor de forma adequada ao seu servidor!
Veja o script cvs-pserver
sendo executado no final da
linha. Ele foi desenvolvido para lidar de forma mais inteligente com a
configuração do servidor CVS pserver.
As seguintes opções são aceitas pelo CVS.
Utiliza o gzip para fazer a transferência compactada dos arquivos. O valor especificado pode ser de 0 a 9, quanto maior o número maior o nível de compactação e uso da CPU.
Exemplo: cvs -z 3 checkout teste
Oculta mensagens sobre recursão de diretório durante os comandos do CVS.
Permite especificar o repositório através da linha de comando.
Define qual é o editor de textos usado para registrar o texto de commits.
Executa o cvs em modo "simulação" não modificando qualquer arquivo do repositório.
Mostra mensagens mostrando o processo de execução de comandos do CVS. É bastante útil para aprendizado do cvs usado junto com a opção -n.
Torna os novos arquivos criados somente para leitura. É a mesma coisa que
especificar a variável CVSREAD
.
Torna os novos arquivos criados leitura/gravação que é o padrão.
Utiliza criptografia para a transferência dos arquivos quando é utilizado em conjunto com o Kerberos.
Você pode obter detalhes sobre opções sobre um comando em especial do CVS
(commit, checkout, etc) digitando:
cvs comando --help
. Veja “Criando projetos para serem usados no CVS” para
exemplos sobre cada uma delas.
Copyright © 1999-2020 - Gleydson Mazioli da Silva