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 sdes.rnl.ist.utl.pt /home/cvs/Axxyy1
Taguspark Identidade T.D.I. tlinux.tagus.ist.utl.pt /afs/tagus/courses/dei/es0/public/repository/Txxyy1

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 ambiente2:

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.

Cada repositório diz respeito a um único grupo,tendo a terminação igual ao nome do grupo (com o formato <inicial do campus><grupo de ES><grupo de SD>, ex.: T0112 para um grupo do Taguspark, inscrito com o número 01 a ES e com o número 12 a SD; A0016 para um grupo da Alameda, inscrito apenas em SD com o número 16)3.

O módulo do projecto terá obrigatoriamente de se chamar fearse. Será sobre este módulo que se verificarão todas as regras constantes deste documento. Quaisquer outros módulos definidos no repositório serão ignorados para efeitos de avaliação.

2. Estrutura de directórios a seguir no módulofearse

Cada grupo deve definir um módulo com o nome fearse no seu repositório, com a seguinte estrutura de directórios:

      fearse                    <-- módulo (sistema FeaRSe)
       |--FeaRS                 <-- sub-projecto da aplicação FeaRS
       |   |-- src              <-- código-fonte (inclui DML e ficheiros de configuração)
       |   |-- test             <-- código-fonte dos testes
       |   |-- war              <-- conteúdo web (segundo a estrutura J2EE)
       |   |   |-- WEB-INF      <-- configurações da aplicação web
       |   |   |    |-- lib     <-- bibliotecas não-partilhadas da aplicação web
       |   |   |    |-- classes <-- directório para onde o processo de construção
       |   |   |    |               copia as classes compiladas (configurado no
       |   |   |    |               Eclipse como local para onde são compiladas as
       |   |   |    |               classes do projecto)
       |   |   |    `-- web.xml <-- ficheiro de configuração da aplicação web
       |   |   |-- ...          <-- conteúdo estático
       |   |   .
       |   |   .
       |   |   `-- index.html
       |   |-- build            <-- directório onde é efectuado todo o processo de
       |   |   |                    construção
       |   |   |-- classes      <-- classes compiladas
       |   |   `-- src          <-- código fonte gerado
       |   `-- build.xml        <-- ficheiro de construção da aplicação FeaRS
       |-- ...                  <-- sub-projecto de outra aplicação do sistema ...
       .
       .
    
O código da aplicação FeaRS a utilizar está disponível no endereço:
http://disciplinas.ist.utl.pt/leic-es/2009-2010/software/FeaRS.zip

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 do módulo fearse 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 do módulo, i.e., todos os ficheiros devem ser etiquetados.4

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

Data Entrega Etiqueta
31/Março 2010 RELEASE_1
5/Maio 2010 RELEASE_2
2/Junho 2010 RELEASE_3

NOTA: as etiquetas são case sensitive.

4. Informações adicionais

Os repositórios estão pré-configurados para ignorarem ficheiros/directórios com os nomes:

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ção5.

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.


1em que xx é o número do grupo a ES (00 caso não estejam inscritos num grupo a ES) e yy é o número do grupo a SD (00 caso não estejam inscritos num grupo a SD).

2 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.

3 Uma vez que cada grupo tem um repositório próprio, nome utilizado na variável CVSROOT é específico para cada grupo. (NÃO necessitam de inicializar o repositório.)

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

5 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.