|
|
Line 1: |
Line 1: |
| {{PRJPOAvisosEN20182019}}
| | #REDIRECT [[ist:Programação com Objectos/Projecto de Programação com Objectos/Repositório CVS]] |
| <!--{{PRJPOAvisosEE20172018}}-->
| |
| {{PRJPOMandatory20182019}}
| |
| {{TOCright}}
| |
| <!--'''<font color="red">A DISPONIBILIZAR BREVEMENTE</font>'''-->
| |
| | |
| Os repositórios CVS para os projectos (um por grupo) já contêm versões iniciais do projecto.
| |
| | |
| {{Suggestion|Guia para leitores perplexos: [[CVS Crash Course]].}}
| |
| | |
| == Localização ==
| |
| | |
| Os repositórios estão disponíveis no AFS em:
| |
| | |
| * '''<nowiki>/afs/ist.utl.pt/groups/leic-po/po18/cvs</nowiki>'''
| |
| | |
| O conteúdo do repositório pode ser manipulado com o comando '''cvs''' ou com qualquer outro cliente compatível (e.g. ''[http://www.eclipse.org/ eclipse]'').
| |
| | |
| {{Aviso|Esta directoria não deve ser utilizada directamente.}}
| |
| | |
| == Modo de Acesso ==
| |
| | |
| No texto que se segue:
| |
| * '''<nowiki>###</nowiki>''' designa o [https://fenix.tecnico.ulisboa.pt/disciplinas/PO6517957/2018-2019/1-semestre/grupos número de grupo] com três dígitos, e.g., 012
| |
| * '''<nowiki>ISTID</nowiki>''' designa o identificador de aluno, no formato "ist123456"
| |
| | |
| Assim, os valores possíveis para a variável de ambiente '''CVSROOT''' (ou pela opção '''-d''' do comando "cvs") são:
| |
| | |
| * '''<nowiki>/afs/ist.utl.pt/groups/leic-po/po18/cvs/###</nowiki>''' (disponível em clientes 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-po/po18/cvs/###</nowiki>''' (disponível via SSH; verificar que CVS_RSH=ssh)
| |
| | |
| {{Aviso|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.}}
| |
| | |
| == Conteúdo e Estrutura do Repositório ==
| |
| | |
| O código fornecido é de uso obrigatório e deve ser completado.
| |
| | |
| Cada projecto é constituído por dois módulos: '''project/sth-core''' e '''project/sth-app'''.
| |
| {{CollapsedCode|Conteúdo inicial do repositório CVS para o módulo sth-core|<text>
| |
| sth-core
| |
| ├── Makefile
| |
| └── src
| |
| └── sth
| |
| ├── exceptions
| |
| │ ├── BadEntryException.java
| |
| │ ├── ImportFileException.java
| |
| │ └── NoSuchPersonIdException.java
| |
| ├── School.java
| |
| └── SchoolManager.java
| |
| </text>
| |
| }}
| |
| {{CollapsedCode|Conteúdo inicial do repositório CVS para o módulo sth-app|<text>
| |
| sth-app
| |
| ├── Makefile
| |
| ├── people.import
| |
| └── src
| |
| └── sth
| |
| └── app
| |
| ├── App.java
| |
| ├── exceptions
| |
| │ ├── ClosingSurveyException.java
| |
| │ ├── DuplicateProjectException.java
| |
| │ ├── DuplicateSurveyException.java
| |
| │ ├── FinishingSurveyException.java
| |
| │ ├── Message.java
| |
| │ ├── NonEmptySurveyException.java
| |
| │ ├── NoSuchDisciplineException.java
| |
| │ ├── NoSuchPersonException.java
| |
| │ ├── NoSuchProjectException.java
| |
| │ ├── NoSurveyException.java
| |
| │ ├── OpeningSurveyException.java
| |
| │ └── SurveyFinishedException.java
| |
| ├── main
| |
| │ ├── DoOpen.java
| |
| │ ├── DoOpenPersonnelMenu.java
| |
| │ ├── DoOpenRepresentativeMenu.java
| |
| │ ├── DoOpenStudentMenu.java
| |
| │ ├── DoOpenTeachingMenu.java
| |
| │ ├── DoSave.java
| |
| │ ├── Label.java
| |
| │ ├── MainMenu.java
| |
| │ └── Message.java
| |
| ├── person
| |
| │ ├── DoChangePhoneNumber.java
| |
| │ ├── DoLogin.java
| |
| │ ├── DoSearchPerson.java
| |
| │ ├── DoShowAllPersons.java
| |
| │ ├── DoShowPerson.java
| |
| │ ├── Label.java
| |
| │ ├── Message.java
| |
| │ └── PersonnelMenu.java
| |
| ├── representative
| |
| │ ├── DoCancelSurvey.java
| |
| │ ├── DoCloseSurvey.java
| |
| │ ├── DoCreateSurvey.java
| |
| │ ├── DoFinishSurvey.java
| |
| │ ├── DoOpenSurvey.java
| |
| │ ├── DoShowDisciplineSurveys.java
| |
| │ ├── Label.java
| |
| │ ├── Message.java
| |
| │ └── RepresentativeMenu.java
| |
| ├── student
| |
| │ ├── DoAnswerSurvey.java
| |
| │ ├── DoDeliverProject.java
| |
| │ ├── DoShowSurveyResults.java
| |
| │ ├── Label.java
| |
| │ ├── Message.java
| |
| │ └── StudentMenu.java
| |
| └── teaching
| |
| ├── DoCloseProject.java
| |
| ├── DoCreateProject.java
| |
| ├── DoShowDisciplineStudents.java
| |
| ├── DoShowProjectSubmissions.java
| |
| ├── DoShowSurveyResults.java
| |
| ├── Label.java
| |
| ├── Message.java
| |
| └── TeachingMenu.java
| |
| </text>
| |
| }}
| |
| | |
| Estes módulos podem ser obtidos em conjunto fazendo checkout de '''project''' (ver abaixo). <!-- (não recomendado, pois podem aparecer interferências indesejáveis -- configurações de eclipse, por exemplo).-->
| |
|
| |
| O repositório já tem a seguinte estrutura:
| |
| <!--* '''Makefile''' (makefile "principal" -- repete as acções sobre as makefiles secundárias)-->
| |
| * '''sth-core''' (directoria principal da biblioteca com a funcionalidade sem interface com o utilizador)
| |
| * '''sth-core/Makefile''' (makefile secundária, semelhante à disponibilizada na aplicação bancária)
| |
| * '''sth-core/src''' (directoria onde reside o código do "core", à semelhança do que acontece na aplicação bancária)
| |
| * '''sth-app''' (directoria correspondente à aplicação; contém a interface com o utilizador)
| |
| * '''sth-app/Makefile''' (makefile secundária, semelhante à disponibilizada na aplicação bancária)
| |
| * '''sth-app/src''' (directoria onde já reside o código da interface textual, tal como na biblioteca equivalente da aplicação bancária)
| |
| | |
| Esta estrutura já contém algumas classes parcialmente implementadas ('''sth-core''') (que devem ser adaptadas) e outras completamente implementadas ('''sth-app''') (que não podem ser alteradas). <!--Estas implementações devem ser adaptadas ao código particular de cada projecto.-->
| |
| | |
| {{Aviso|A estrutura do repositório não pode ser alterada.}}
| |
| | |
| {{Aviso|Os nomes das classes fornecidas em '''sth-core''' não podem ser alterados.}}
| |
| | |
| {{Aviso|O código fornecido em '''sth-app''' tem de ser completado, mas os nomes das classes não podem ser alterados.}}
| |
| | |
| == 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-po/po18/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''' (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 a biblioteca '''po-uuilib''' 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 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 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.
| |
| | |
| Agradece-se a comunicação de eventuais problemas.
| |
| | |
| [[category:Projecto de PO]]
| |
| [[category:PO]]
| |
| [[category:Ensino]]
| |