Localização e Acesso
Os repositórios CVS para os projectos (um por grupo) já contêm versões iniciais de todos os projectos (i.e., já foi feito o "import" inicial). Os repositórios estão disponíveis no AFS em:
- /afs/ist.utl.pt/groups/leic-po/po14/cvs -- esta directoria não deve ser utilizada directamente
- ### designa o número do grupo sempre com três dígitos
- ##### designa o número de aluno, sempre com cinco dígitos
Assim, os valores possíveis para a variável de ambiente CVSROOT ou pela opção -d do comando "cvs") são:
- /afs/ist.utl.pt/groups/leic-po/po14/cvs/### (disponível em qualquer máquina com AFS e utilizador com token válido para a célula ist.utl.pt)
- :ext:ist1#####@sigma.ist.utl.pt:/afs/ist.utl.pt/groups/leic-po/po14/cvs/### (disponível via SSH; verificar que CVS_RSH=ssh)
Os alunos que ainda não visitaram o self-service do CIIST [ https://ciist.ist.utl.pt/servicos/self_service/ ], devem fazê-lo, para activação dos serviços relevantes (AFS e Shell, pelo menos). Sem isso, não conseguirão desenvolver ou entregar o projecto, reprovando à disciplina.
Os testes diários sobre o repositório CVS estão aqui: http://goo.gl/EKAuyQ
Estrutura de Módulos no Repositório
Cada projecto é constituído por módulos (por exemplo, no eclipse, são projectos independentes):
- project/poof-core
- project/poof-textui
-
Makefile (makefile "principal" -- repete a acção sobre as secundárias)
-
poof-core (directoria principal da biblioteca com a funcionalidade sem interface "gráfica")
-
poof-core/Makefile (makefile secundária, semelhante à disponibilizada no "core" da aplicação bancária)
-
poof-core/src (directoria onde deve residir o código do "core", à semelhança do que acontece na aplicação bancária)
-
poof-textui (directoria correspondente interface baseada em texto)
-
poof-textui/Makefile (makefile secundária, semelhante à disponibilizada na biblioteca "textui" da aplicação bancária)
-
poof-textui/src (directoria onde já reside o código da interface textual, à semelhança do que acontece com a biblioteca equivalente na aplicação bancária)
Esta estrutura já contém comandos parcialmente implementados. Estas implementações devem ser adaptadas ao código particular de cada projecto, mas os nomes das classes em poof-textui não podem ser alterados.
Cuidados no Uso do Repositório
NÃO FAZER
- cvs init (não é necessário: o repositório já existe)
- cvs import (não é necessário: o projecto já existe)
- cd /afs/ist.utl.pt/groups/leic-po/po14/cvs (ou qualquer outra manipulação directa do repositório: toda a interacção com o repositório deve ser limitada ao comando "cvs")
FAZER
Obter a versão inicial do projecto:
- cvs co project (é automaticamente criada uma directoria controlada pelo CVS com o nome project, com a estrutura apresentada acima)
- Editar o material obtido e produzir novo material.
- cvs add ficheiro1 ficheiro2 ... ficheiro3 (adicionar ficheiros novos ao projecto no CVS)
- cvs update (verificar que não foi esquecido nenhum ficheiro importante: voltar a 3 até terem sido todos adicionados)
- cvs commit (enviar alterações dos ficheiros iniciais para o repositório e enviar os novos ficheiros)
OBSERVAÇÕES IMPORTANTES
- No ponto 3 acima, é importante notar que quando se quer adicionar o conteúdo de uma (sub)directoria, deve ser primeiro adicionada a própria directoria e, só depois, o seu conteúdo.
- Não adicionar cópias das bibliotecas po-uilib, poof-support ao projecto (serão removidas e quaisquer alterações perdidas -- isto pode causar problemas de compilação e perda de nota).
- Pessoas sem área no AFS ou sem login no Sigma não poderão aceder ao conteúdo do repositório ou às imagens das máquinas virtuais: para activar estes acessos, consultar o self-service do CIIST. Em caso de dificuldade, consultar o corpo docente.
- A estrutura do projecto no CVS deve ser mantida como apresentado e cada biblioteca do projecto deve ser, em geral, semelhante, em estrutura, às apresentadas para a aplicação bancária.
- Em caso de dúvidas, consultar o corpo docente.
Esta página contém um crash course (muito curto) sobre CVS: http://goo.gl/jdB92I
Agradece-se a comunicação de eventuais problemas.