Utilização do CVS

Instalação

A instalação do CVS irá depender da distribuição de Linux em uso, mas no geral será feita pelo package manager.
Abaixo seguem alguns exemplos:

  • Arch Linux: sudo pacman -S cvs
  • Debian/Ubuntu/etc: sudo apt install cvs

Transferir o projeto para a máquina local

No âmbito do projeto, o repositório CVS encontra-se no Sigma, numa pasta do AFS.

É assim necessário definir duas environment variables:

export CVS_RSH=ssh
export CVSROOT=:ext:ist1XXXXXX@sigma.tecnico.ulisboa.pt:/afs/ist.utl.pt/groups/leic-po/po22/cvs/XXX

Obviamente é necessário substituir os XXX pelos valores tanto do utilizador como da pasta do grupo.

Utilização com Kerberos (avançado)

Para não ser necessário colocar a password do Fénix em todos os comandos AFS, pode-se usar o Kerberos para autenticação no Sigma.

Para tal, seguir este guia ou, em alternativa, o guia da ArchWiki e/ou da DSI.
Antes de prosseguir, garantir que se consegue fazer login por SSH sem utilizar password (e.g. ssh sigma).

Depois basta alterar a variável CVSROOT para utilizar o novo alias.

export CVSROOT=:ext:sigma:/afs/ist.utl.pt/groups/leic-po/po21/cvs/XXX

Finalmente, executar o comando que irá criar a pasta 'project', onde será colocado o vosso projeto:

cvs co project

A password de acesso é a mesma do Fénix (tal como se entrassem normalmente no Sigma).

DICA

Se quiserem dar outro nome à pasta (sem ser project), usem o seguinte comando em vez do anterior, alterando folder_name para o nome pretendido.

cvs co -d folder_name project

Adicionar ficheiros ao CVS

Só é preciso adicionar ficheiros novos (que o CVS ainda não conhece), depois disso só é preciso fazer commit de mudanças.

Adicionar ficheiro

cvs add <file_name>

Adicionar pasta

(se precisarem de adicionar um ficheiro que está numa pasta que o CVS ainda não conhece têm que adicionar a pasta primeiro)

cvs add <dir_name>

Fazer commit de mudanças

Para que as mudanças sejam enviadas para o AFS e o vosso colega de grupo (ou o Professor David Matos) possa ter acesso ao vosso trabalho têm que fazer commit das mudanças, para tal corre-se.

cvs commit -m "<mensagem_que_descreve_as_mudanças>"

Para aprender a escrever commit messages úteis podem ler isto ou isto.

warning

Atenção, se correrem o comando cvs commit numa das subdiretorias do projeto só estão a considerar os ficheiros dessa diretoria e as suas sub-diretorias, como tal podem acidentalmente não fazer commit a tudo o que queriam fazer commit.

Receber as mudanças

Para terem acesso às mudanças do vosso colega de grupo precisam de executar cvs update, isto vai buscar o estado do repositório ao AFS.


A página CVS Crash Course do Professor David Matos fala do CVS com mais pormenor.