Utilização do CVS no projecto

  1. Acesso ao repositório
  2. Estrutura de directórios a seguir
  3. Etiquetação das entregas
  4. Informações adicionais

1. Acesso ao repositório

Estão disponíveis repositórios de CVS para utilização durante o projecto conjunto de ES+SD. Uma vez que cada campus tem recursos informáticos próprios, a tabela seguinte descreve os dois repositórios CVS existentes, devendo os alunos utilizar o repositório do campus a que pertencem:

Campus Sistema de Autenticação Servidor Repositório
Alameda LoginRNL sdes2008.rnl.ist.utl.pt /home/cvs
Taguspark Identidade T.D.I. tlinux.tagus.ist.utl.pt /afs/tagus/courses/dei/es0/public/repository

Existem várias formas de acesso ao repositório. A forma mais aconselhada, por ser a única que é segura, é utilizar o modo :ext: com ssh. Para tal devem definir as seguintes variáveis de ambiente1:

CVSROOT=:ext:<utilizador>@<servidor>:<repositório>
CVS_RSH=<ssh>

onde <utilizador> corresponde ao login (no sistema de autenticação) da pessoa que está a usar o CVS e <ssh> é o path para o ficheiro executável do programa SSH instalado na máquina cliente.

Dentro do repositório existe um módulo para cada grupo. O módulo tem o nome igual ao do grupo (com o formato <inicial do campus><grupo de SD><grupo de ES>, ex.: T0112 para um grupo do Taguspark, inscrito com o número 01 a SD e com o número 12 a ES; A0016 para um grupo da Alameda, inscrito apenas em ES com o número 16)2.

2. Estrutura de directórios a seguir

Cada grupo deve manter a seguinte estrutura de directórios dentro do seu módulo:

      <modulo>               <-- módulo do grupo
       |
       `-LojaVirtual         <-- projecto do sistema LojaVirtual
	   |-- lib           <-- bibliotecas comuns aos vários sub-projectos
	   |-- import-ant    <-- ferramenta ImportAnt
	   |-- Armazem       <-- sub-projecto da aplicação Armazém
	   |   |-- core
	   |   |-- view
	   |   |-- ws
	   |   `-- ws-client
	   |-- Pagamento     <-- sub-projecto da aplicação Pagamento
	   |   |-- core
	   |   |-- view
	   |   |-- ws
	   |   `-- ws-client
	   |-- Expedicao     <-- sub-projecto da aplicação Expedição
	   |   |-- core
	   |   |-- view
	   |   |-- ws
	   |   `-- ws-client
	   |-- Loja          <-- sub-projecto da aplicação Loja Virtual
	   |   |-- core
	   |   |-- view
	   |   `-- web
	   `-- SAut          <-- sub-projecto da aplicação Serviço de Autenticação
	       |-- core
	       |-- view
	       |-- ws
	       `-- ws-client
    

3. Etiquetação das entregas

Todas as entregas são realizadas através do CVS. Não são aceites entregas de ficheiros por e-mail. Em cada entrega, os ficheiros devem ser etiquetados recorrendo aos comandos tag ou rtag.

A hora limite de cada entrega é até às 20h do dia dessa entrega. Esta hora é controlada automaticamente pelo relógio do servidor pelo que os ficheiros que pretenderem entregar deverão ser etiquetados ANTES da hora limite. Não são aceites entregas após a hora limite.

Todas as etiquetas devem ser atribuídas recursivamente a todos os ficheiros a partir do directório LojaVirtual, i.e., todos os ficheiros devem ser etiquetados.3

A tabela seguinte descreve os nomes que deverão ter as etiquetas a colocar em cada entrega.

Data Entrega Etiqueta
2 Abril 2008 RELEASE_1
30 Abril 2008 RELEASE_2
6 Junho 2008 RELEASE_3

NOTA: as etiquetas são case sensitive.

4. Informações adicionais

O espaço ocupado pelos ficheiros no CVS pode descontar do espaço em disco que cada utilizador tem no servidor. O erro mais comum durante as entregas de projectos é falta de espaço na área do utilizador que está a etiquetar os ficheiros.

Para evitar problemas, garantam sempre que têm suficiente espaço livre na área, especialmente durante commits e tags. Estejam atentos às mensagens de erro. Se for necessário, libertem espaço e repitam a operação4.

Confirmem que estão a entregar os ficheiros pretendidos nas versões pretendidas! A melhor forma de confirmar é efectuar um checkout da etiqueta que acabaram de colocar e testar se está tudo bem.


1 Este exemplo é para uma utilização directa na shell. A utilização via Eclipse necessita apenas da definição prévia da variável de ambiente CVS_RSH, pois a definição da localização do repositório é efectuada dentro do eclipse.

2 Embora existam vários módulos o repositório é apenas um, pelo que o nome utilizado na variável CVSROOT não tem de ser alterado para cada grupo, definindo-se sempre com o valor indicado para cada um dos campi. (NÃO necessitam de inicializar o repositório.)

3 Em CVS, um mesmo ficheiro pode ter várias etiquetas.

4 Quando uma operação no CVS falha por falta de espaço em disco, é possível que apenas parte da operação tenha sido concluída. No caso de etiquetação é possível mover etiquetas ou re-etiquetar ficheiros, caso uma etiqueta já tenha sido atribuída anteriormente. Ver opção '-F' da operação tag.