|   |     | 
| (27 intermediate revisions by the same user not shown) | 
| Line 1: | Line 1: | 
|  | {{PRJCompiladoreAvisosEN20152016}}
 |  | #REDIRECT [[ist:Compiladores/Projecto de Compiladores/Repositório CVS]] | 
|  | {{PRJCompiladoreAvisosEE20152016}}
 |  | 
|  | {{PRJCOMandatory20152016}}
 |  | 
|  | {{TOCright}}
 |  | 
|  | <!-- '''<font color="red">A DISPONIBILIZAR BREVEMENTE</font>''' -->
 |  | 
|  |   |  | 
|  | Guia para leitores perplexos: [[CVS Crash Course]].
 |  | 
|  |   |  | 
|  | '''<font color="brown">Os alunos que ainda não visitaram o [https://selfservice.dsi.tecnico.ulisboa.pt/ self-service da DSI], 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.</font>'''
 |  | 
|  |   |  | 
|  | == 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:
 |  | 
|  |   |  | 
|  | * '''<nowiki>/afs/ist.utl.pt/groups/leic-co/co16/cvs</nowiki>''' -- '''<font color="brown">esta directoria não deve ser utilizada directamente</font>'''
 |  | 
|  |   |  | 
|  | Assim, os valores possíveis para a variável de ambiente '''CVSROOT''' ou pela opção '''-d''' do comando "cvs") são indicados de seguida.
 |  | 
|  |   |  | 
|  | === CVSROOT para projectos em Época Normal ===
 |  | 
|  |   |  | 
|  | Legenda:'''<nowiki>###</nowiki>''' designa o número do grupo (sempre com três dígitos) e '''<nowiki>ISTID</nowiki>''' designa a identidade Fénix do aluno (ist123456, etc.)
 |  | 
|  | * '''<nowiki>/afs/ist.utl.pt/groups/leic-co/co16/cvs/###</nowiki>''' (disponível em qualquer máquina com AFS e utilizador com token válido para a célula ist.utl.pt)
 |  | 
|  | * '''<nowiki>:ext:ISTID@sigma.ist.utl.pt:/afs/ist.utl.pt/groups/leic-co/co16/cvs/###</nowiki>''' (disponível via SSH; verificar que CVS_RSH=ssh)
 |  | 
|  |   |  | 
|  | === CVSROOT para projectos em Época Especial ===
 |  | 
|  | '''<font color="red">ÉPOCA ESPECIAL</font>'''
 |  | 
|  |   |  | 
|  | Legenda: '''<nowiki>#####</nowiki>''' designa o número do aluno (sempre com cinco dígitos) e '''<nowiki>ISTID</nowiki>''' designa a identidade Fénix do aluno (ist123456, etc.)
 |  | 
|  | * '''<nowiki>/afs/ist.utl.pt/groups/leic-co/co16/cvs/#####</nowiki>''' (disponível em qualquer máquina com AFS e utilizador com token válido para a célula ist.utl.pt)
 |  | 
|  | * '''<nowiki>:ext:ISTID@sigma.ist.utl.pt:/afs/ist.utl.pt/groups/leic-co/co16/cvs/#####</nowiki>''' (disponível via SSH; verificar que CVS_RSH=ssh)
 |  | 
|  |   |  | 
|  | == Conteúdo e Estrutura do Repositório ==
 |  | 
|  |   |  | 
|  | Cada projecto no repositório contém inicialmente o compilador da linguagem Simple, superficialmente transformado para permitir o início do desenvolvimento do compilador da linguagem a implementar (isto significa que a linguagem é ainda a original, embora o compilador e as suas estruturas usem o novo nome em lugar de"simple").
 |  | 
|  |   |  | 
|  | Embora possam (e devam) ser acrescentados ficheiros ao projecto do compilador durante o desenvolvimento, '''<font color="brown">a estrutura de directórios não pode ser alterada</font>'''.
 |  | 
|  |   |  | 
|  | A makefile pode precisar de ser adaptada (variáveis indicadas), mas não deve ser substancialmente alterada.
 |  | 
|  |   |  | 
|  | Breve descrição da estrutura de directórios (abaixo de '''project'''):
 |  | 
|  |   |  | 
|  | * '''ast''' (directoria que contém as classes dos nós da árvore sintáctica abstracta - padrão Composite)
 |  | 
|  | * '''targets''' (directoria que contém as classes de processamento semântico - padrão Visitor)
 |  | 
|  |   |  | 
|  | Note-se que todo o projecto é compilado pela Makefile na directoria de base.
 |  | 
|  |   |  | 
|  | == Cuidados a ter na Utilização do Repositório CVS==
 |  | 
|  |   |  | 
|  | === <font color="red">NÃO FAZER</font> ===
 |  | 
|  |   |  | 
|  | * '''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-co/co16/cvs''' (ou qualquer outra manipulação directa dos ficheiros do repositório: toda a interacção com o repositório deve ser limitada ao comando "cvs")
 |  | 
|  |   |  | 
|  | === <font color="forestgreen">FAZER</font> ===
 |  | 
|  |   |  | 
|  | Antes de tudo o mais, fazer cópias de segurança (vulgo "backups") de tudo o que já foi feito. 
 |  | 
|  |   |  | 
|  | O repositório já contém uma versão preliminar do projecto e devem ser dados os seguintes passos, para continuar a desenvolver o projecto:
 |  | 
|  |   |  | 
|  | # '''cvs co project''' (permite criar localmente uma directoria controlada pelo CVS, com o nome '''project''', com a estrutura apresentada acima, contendo os ficheiros do projecto);
 |  | 
|  | # Editar/adicionar material do/ao projecto;
 |  | 
|  | # Caso sejam criados ficheiros ou directórios novos, fazer '''cvs add ficheiro1 ficheiro2 ... ficheiro3''' (adicionar cada ficheiro novo ao projecto no CVS);
 |  | 
|  | # '''cvs update''' (antes de enviar alteração locais para o repositório, verificar se há actualizações a incorporar na cópia local e que não foi esquecido nenhum ficheiro importante: voltar a 3 até terem sido todos adicionados)
 |  | 
|  | # '''cvs commit -m "Mansagem de commit."''' (enviar alterações para o repositório)
 |  | 
|  |   |  | 
|  | === 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 do material de apoio (CDK e RTS) ao projecto (serão removidas e quaisquer alterações perdidas -- além disso, lixo no repositório é penalizado).
 |  | 
|  | * Pessoas sem área no AFS, ou sem login activado, não poderão aceder ao conteúdo do repositório: para activar estes acessos, consultar o self-service do CIIST (DSI). Em caso de dificuldade, consultar o corpo docente.
 |  | 
|  | * A estrutura do projecto no CVS deve ser mantida como apresentado.
 |  | 
|  | * Em caso de dúvidas, consultar o corpo docente.
 |  | 
|  |   |  | 
|  | Agradece-se a comunicação de eventuais problemas.
 |  | 
|  |   |  | 
|  | [[category:Projecto de Compiladores]]
 |  | 
|  | [[category:Compiladores]]
 |  | 
|  | [[category:Ensino]]
 |  |