segunda-feira, julho 25, 2005

LX CVS Tutorial

http://www.g2ctech.com/artigos/servidor-cvs.html

hlbog@slack01:/packages/cvs-1.11.13$ su -

Password:

root@slack01:~# groupadd cvs
root@slack01:~# useradd -d /home/cvs -m -g cvs cvs
root@slack01:~# passwd cvs
Changing Password for cvs
Enter the new password (minimum of 5, maximum of 127 characters)
Please use a combination of upper and lower case letters and numbers.
New password:
Re-enter new password:
Password changed.

Altere a entrada do arquivo /etc/passwd, do original:

cvs:x:1001:102::/home/cvs:

De modo que fique como mostrado abaixo:

cvs:x:1001:102::/home/cvs:/bin/false

Isso não permitirá que alguém se logue no sistema com esse usuário.

Crie um diretório para o repositório CVS:

root@slack01:~# mkdir /var/cvsroot
root@slack01:~# chown cvs:cvs /var/cvsroot
root@slack01:~# chmod 2775 /var/cvsroot

Esta permissão (SGID) fará com que arquivos criados abaixo do diretório tenham o mesmo group id de /var/cvsroot.

Agora você pode executar o comando para definir o diretório como o repositório para o CVSROOT:

root@slack01:~# cvs -d /var/cvsroot init

Vamos dar uma olhada no conteúdo do diretório:

root@slack01:~# ls -l /var/cvsroot
total 4
drwxrwsr-x 3 root cvs 4096 Feb 19 03:02 CVSROOT/
root@slack01:~# ls -l /var/cvsroot/CVSROOT
total 92

oot@slack01:~# chown -R cvs /var/cvsroot

Importação de Projeto

Uma vez com o repositório criado, é hora de importar os seus projetos para o repositório. É interessante manter todos os arquivos relacionados ao mesmo projeto embaixo de uma árvore única de diretório.

Um projeto normalmente é associado ao conjunto de programas de um sistema em desenvolvimento, mas pode ser qualquer conjunto sobre o qual você queira manter um controle de versões e histórico.

Como exemplo, vamos assumir que queiramos manter os nossos arquivos de configuração contidos na árvore /etc sobre o controle do CVS. É uma boa prática, pois assim você pode facilmente restaurar versões antigas, verificar comentários de alterações e saber quando determinada mudança foi efetuada.

root@slack01:~# cd /etc
root@slack01:/etc# cvs -d /var/cvsroot import etc myconfig v0-1

Neste comando, import é a ação a ser executada, etc é o nome do projeto, myconfigé a vendor tag e v0-1 é a release tag.

Um editor será aberto, normalmente o vi, pedindo que você coloque algum comentário sobre a versão inicial do seu projeto. Coloque algum texto descritivo sobre a função deste projeto. Salve e saia do editor. Os arquivos do projeto serão importados para o repositório.

A mensagem final deverá ser:

No conflicts created by this import

Verifique agora o conteúdo de /var/cvsroot:

root@slack01:~# ls -l /var/cvsroot
total 8

drwxrwsr-x 3 cvs cvs 4096 Feb 19 03:02 CVSROOT/
drwxrwsr-x 38 root cvs 4096 Feb 19 03:02 etc/

Se você olhar abaixo de /var/cvsroot/etc você verá que todos os arquivos terminam com o sufixo “,v”.

Fazendo um Checkout do Projeto

O próximo passo é fazer um checkout dos arquivos em um chamado sandbox. Este será o local de onde você deverá realizar modificações nos arquivos, podendo ser na própria máquina onde estão os originais ou em outra estação. Mostraremos como criar um sandbox remoto mais adiante.
Criaremos nosso sandbox localmente em outro diretório. Lembre-se, não faça mais alterações nos arquivos originais em /etc. O CVS interpretaria um arquivo alterado no local original como um novo arquivo e isso causaria confusão no seu gerenciamento de versões.

root@slack01:~# mkdir /home/projetos
root@slack01:~# cd /home/projetos
root@slack01:/home/projetos# export CVSROOT=/var/cvsroot
root@slack01:/home/projetos# cvs checkout etc

This page is powered by Blogger. Isn't yours?