Escolar Documentos
Profissional Documentos
Cultura Documentos
Laboratório Projeto I
www.isep.ipp.pt
Professores
Miguel Sá (fsa@isep.ipp.pt)
• Nome
• Profissão
• Experiência em IT
• Porquê este curso?
Vantagens
• Segurança: Evitar corrupções de ficheiros. Controlo de acessos ao código fonte.
• Versionamento: Histórico do código fonte. Restaurar para um estado anterior ou comparar alterações
• Organização: visualização completa do ciclo de vida de cada ficheiro, desde sua criação até o momento atual.
• Confiança: Repositórios remotos ajudam na recuperação de imponderáveis. Testar novas ideias sem danificar a
linha base do desenvolvimento
Exemplos:
• CVS
• Subversion
• Perforce
Modo de funcionamento:
• 1 servidor central contém versões de todos os ficheiros
• Os clientes ligam-se e obtêm as últimas versões dos ficheiros a partir
do servidor central
Vantagens: Desvantagens:
• Os elementos das equipas conhecem o • Se o servidor fica offline, a colaboração fica
trabalho dos outros em standby
• Os administradores têm um panorama geral • Se o disco do servidor avaria e não há
das tarefas dos programadores backups, o histórico perde-se se não estiver
• Mais fácil de gerir do que pastas locais nos computadores clientes
Exemplos:
• Git
• Mercurial
• Bazaar
• Darcs
Modo de funcionamento:
• Os clientes ligam-se e obtêm não apenas as últimas versões dos ficheiros a partir do servidor
central mas o completo historial do projecto (full mirror of the repository)
Vantagens: Desvantagens:
• Se o servidor fica offline, os utilizadores • Checkout inicial do repositório é mais lento
podem continuar a trabalhar normalmente (todas branches e histórico é copiado para a
• Se o disco do servidor avaria, cada um dos máquina local)
clientes tem o histórico do projecto • É necessário mais espaço de armazenamento
armazenado localmente e pode ser copiado • Maior exposição do código fonte, pois cada
para outro servidor participante possui uma cópia localmente
• Permite colaboração com diversos utilizadores vulnerável.
em diferentes projectos
3. Fazemos o commit, que retira os ficheiros da staging area e os armazena num snapshot
permanentemente ao repositório git (.git directory)
Se uma versão de um ficheiro está na pasta .git (.git directory), é considerado commited
Se um ficheiro foi modificado mas não está na staging area, o ficheiro está apenas modified.