Labs SD >

Repositório Git


O Git é um sistema de controlo de versões do código fonte que é uma grande ajuda para o trabalho em equipa.
Esqueçam mail attachments, dropboxes, etc. Toda a partilha de código para trabalho deve ser feita através do GitHub.

Cada membro da equipa deve atualizar a sua foto para facilitar a identificação e comunicação.

A atualização do repositório deve ser feita com regularidade, correspondendo à distribuição de trabalho entre os alunos e às várias etapas de desenvolvimento. Cada elemento do grupo deve actualizar o repositório do seu grupo à medida que vai concluindo as várias tarefas que lhe foram atribuídas.

Nota importante: O grupo é responsável por fazer backup regular dos ficheiros do seu projeto (para prevenir uma falha do GitHub).


O repositório de cada grupo está disponível no GitHub em:

https://github.com/tecnico-distsys/C_XX-project/
ou em:
https://github.com/tecnico-softeng-distsys-2015/C_XX-project/
onde:

A estrutura pretendida para os projetos no repositório é a seguinte:

    C_XX-project/
    |
    |---...-ws/
    |   |---pom.xml
    |   |---...
    |
    |---...ws-cli/
    |   |---pom.xml
    |   |---...
    |
    .
    .
    .
    |
    README.md

Deve existir um ficheiro README.md contendo instruções de instalação dos diferentes servidores.

Para configurar os ficheiros a ignorar devem definir o ficheiro .gitignore:
(sintaxe descrita no manual)

*.class 

# Mobile Tools for Java (J2ME) 
.mtj.tmp/ 

# Package Files # 
*.jar 
*.war 
*.ear 
 
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 
hs_err_pid* 

# maven target (build) folders 
target/ 


Para trabalhar, devem obter uma cópia local do repositório:

$ git clone https://github.com/tecnico-distsys/C_XX-project/
ou:
$ git clone https://github.com/tecnico-softeng-distsys-2015/C_XX-project/

Fazer os commits locais e depois "empurrar" para o GitHub, por exemplo:
$ git status
...
$ git commit -m "Closed issue #22"
...
$ git push

Em alternativa à linha de comandos, o Eclipse suporta as principais funcionalidades de forma simplificada (ver as opções do menu Team).

 


Primeira entrega do Projeto

Para os grupos que usam GitHub para trabalhar (recomendado), a entrega das várias partes do projeto é feita através do repositório.

A cada parte do projecto a entregar está associada uma TAG. Cada grupo tem que marcar o código que representa cada entrega a realizar com uma TAG específica.

Por exemplo, supondo que o repositório do GitHub já contém os commits correspondentes à primeira parte do projecto:

O grupo deve criar a TAG SD_R1:

$ git tag SD_R1
$ git push origin SD_R1

Podem obter a versão entregue, fazendo:

$ git clone -b SD_R1 https://github.com/tecnico-distsys/C_XX-project/
ou:
$ git clone -b SD_R1 https://github.com/tecnico-softeng-distsys-2015/C_XX-project/

 


Segunda entrega do Projeto

Para a segunda parte do projecto, o processo é idêntico ao da primeira, mas o nome da TAG deve ser SD_R2.

 


Entrega Fénix

Para grupos que não usam GitHub para trabalhar, podem recorrer a uma entrega via Fénix.
Atenção: a entrega via Fénix sobrepõe-se a uma entrega via GitHub.


© Docentes de Sistemas Distribuídos, Dep. Eng. Informática, Técnico Lisboa