A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Subversion- Treinamento Básico Controle de versões de Arquivos na Acropolis Atualizado em 20.05.2008.

Apresentações semelhantes


Apresentação em tema: "Subversion- Treinamento Básico Controle de versões de Arquivos na Acropolis Atualizado em 20.05.2008."— Transcrição da apresentação:

1 Subversion- Treinamento Básico Controle de versões de Arquivos na Acropolis Atualizado em 20.05.2008

2 Índice Arquitetura O Problema Soluções Conceitos Básicos Clico Básico de Trabalho Rotina de Trabalho Hierarquia de Diretórios

3 Arquitetura Cliente Repositório Usuário Cópia de Trabalho (Local) Rede

4 O Problema Possibilidade de um usuário sobrescrever as modificações realizadas por outro usuário. Repositório A B Luís Gabriela

5 O Problema Possibilidade de um usuário sobrescrever as modificações realizadas por outro usuário. Dois usuário baixam arquivos do repositório Repositório A B Luís Gabriela AB AB

6 O Problema Possibilidade de um usuário sobrescrever as modificações realizadas por outro usuário. Luís modifica localmente o arquivo A Repositório A B Luís Gabriela AB AB

7 O Problema Possibilidade de um usuário sobrescrever as modificações realizadas por outro usuário. Repositório A B Luís Gabriela AB AB Luís envia o arquivo A para o repositório

8 O Problema Possibilidade de um usuário sobrescrever as modificações realizadas por outro usuário. Gabriela modifica localmente o arquivo A Repositório A B Luís Gabriela AB BA

9 O Problema Possibilidade de um usuário sobrescrever as modificações realizadas por outro usuário. Gabriela envia o arquivo A, sobrescrevendo a modificação feita por Luís Repositório A B Luís Gabriela AB BA

10 Soluções Lock-Modifique-Unlock: não é permitido a mais de um usuário modificar o mesmo arquivo ao mesmo tempo. Copie-Modifique-Merge: usuários podem modificar o mesmo arquivo ao mesmo tempo, sob pena de possivelmente terem que realizar merge.

11 Soluções Lock-Modifique-Unlock Repositório A B Luís Gabriela

12 Soluções Lock-Modifique-Unlock Luís baixa A e bloqueia o arquivo para outros usuários Repositório A B Luís Gabriela A L

13 Soluções Lock-Modifique-Unlock Gabriela tenta baixar o arquivo A, mas não consegue L X Repositório A B Luís Gabriela A

14 Soluções Lock-Modifique-Unlock –Um usuário pode deixar um arquivo bloqueado por muito tempo, atrapalhando o trabalho de outros. –Serializa trabalhos que podem ser feitos em paralelo (ex.: um usuário editando um método X enquanto outro edita o método Y). –Pode ser usado para controle de versão de arquivos binários, no qual o merge automático não é possível (a não ser por programas específicos).

15 Soluções Copie-Modifique-Merge Repositório A B Luís Gabriela

16 Soluções Copie-Modifique-Merge Dois usuário baixam arquivos do repositório Repositório A B Luís Gabriela AB BA

17 Soluções Copie-Modifique-Merge Luís modifica o arquivo A localmente Repositório A B Luís Gabriela AB BA

18 Soluções Copie-Modifique-Merge Luís envia o arquivo A para o repositório Repositório A B Luís Gabriela AB BA

19 Soluções Copie-Modifique-Merge Gabriela modifica o arquivo A localmente Repositório A B Luís Gabriela AB BA

20 Soluções Copie-Modifique-Merge Gabriela tenta enviar o arquivo A para o repositório, mas é apontado conflito. C C Repositório A B Luís Gabriela AB BA

21 Soluções Copie-Modifique-Merge Gabriela resolve o conflito localmente (provavelmente após uma conversa com Luís) Repositório A B Luís Gabriela AB BA

22 Soluções Copie-Modifique-Merge Gabriela envia o arquivo resolvido para o repositório Repositório A B Luís Gabriela AB BA

23 Soluções Copie-Modifique-Merge Luís atualiza sua cópia local com dados do repositório Repositório A B Luís Gabriela AB BA

24 Soluções Copie-Modifique-Merge –Todos os usuários trabalham com o projeto inteiro localmente. –Possibilita trabalhos paralelos em um mesmo arquivo por diferentes usuários. –O merge pode ser feito automaticamente para arquivos em formato texto (arquivos binários necessitam de programas específicos).

25 Conceitos Básicos Arquitetura Cliente Repositório Usuário Cópia de Trabalho (Local) Rede

26 Conceitos Básicos Checkout: Baixar arquivos do repositório para o diretório de trabalho.

27 Conceitos Básicos Commit: Enviar modificações do diretório de trabalho para o repositório Repositório A B Usuário A B Repositório A B Usuário A B commit

28 Conceitos Básicos Update: Baixar modificações do repositório para o diretório de trabalho Repositório A B Usuário A B Repositório A B Usuário A B update

29 Ciclo Básico de Trabalho 1.Atualize a sua cópia de trabalho 2.Faça as modificações locais 3.Examine as modificações locais 4.Faça merge com as modificações de outros usuários 5.Faça commit das suas modificações

30 Ciclo Básico de Trabalho Atualize a sua cópia de trabalho Repositório A Usuário B C A B Repositório A Usuário B C B update A C O usuário recebeu o arquivo C (que não constava em seu diretório de trabalho) e recebeu as modificações realizadas no arquivo A

31 Ciclo Básico de Trabalho Faça as modificações locais Repositório A Usuário B C B A C O usuário modificou os arquivos A e C (não é necessário informar o Subversion de que os arquivos estão sendo alterados) Repositório A Usuário B C B A C O usuário criou o arquivo D. O arquivo criado ainda deve ser marcado para adição. D

32 Ciclo Básico de Trabalho Faça as modificações locais Repositório A Usuário B C B A C O usuário marca o arquivo D para adição no diretório local. Não houve troca de informações com o repositório. A adição no repositório só será efetuada depois do commit. D add D +

33 Ciclo Básico de Trabalho Faça as modificações locais Repositório A Usuário B C B A C O usuário marcou o arquivo B para deleção localmente. Não houver troca de informações com o repositório. Como na adição de arquivos, a deleção só será efetuada no commit. delete B - D +

34 Ciclo Básico de Trabalho Examine as modificações locais Terminadas as modificações, o usuário deve verificar o que foi modificado. O comando “Check for Modifications” vai comparar o diretório de trabalho com a situação desde o último update. Não há troca de informações com o repositório. Repositório A Usuário B C B A C Check For Modifications - D +

35 Ciclo Básico de Trabalho Examine as modificações locais Durante a checagem de modificações, o usuário verificou que tinha modificado o arquivo A. Para verificar as modificações realizadas, ele pode usar o comando diff. Repositório A Usuário B C B A C Diff A - D +

36 Ciclo Básico de Trabalho Examine as modificações locais Repositório A Usuário B C B A C Ao examinar o diff, o usuário percebe que as modificações sobre A foram acidentais. Para reverter as modificações feitas desde o último update, o usuário pode executar o comando revert. - revert A D +

37 Ciclo Básico de Trabalho Faça o merge com as possíveis modificações de outros usuários Repositório A Usuário B C B A C Depois de verificar as modificações locais, o usuário deve atualizar seu diretório local, pois outros usuários podem ter feito commit de arquivos. No caso acima, um outro usuário fez modificações no arquivo C e realizou commit, gerando conflito. - update C C D

38 Ciclo Básico de Trabalho Faça o merge com as possíveis modificações de outros usuários Repositório A Usuário B C B A O usuário receberá entre outras, uma cópia do arquivo C atual no repositório. A partir desses dois arquivos, ele deverá resolver o conflito. Depois de resolvido, ele deverá utilizar o comando resolved. + - C resolved C D

39 Ciclo Básico de Trabalho Faça commit das suas modificações Repositório A Usuário B C A Pronto! O usuário já pode fazer commit de suas modificações. Perceba que, apesar de deletado, o arquivo B ainda existe nas versões anteriores. C commit D D

40 Rotina de Trabalho Algumas regras foram propostas para adoção na Acropolis, como forma de otimizar a utilização do controlador de versões.

41 Rotina de Trabalho No mínimo, 1 ciclo de trabalho completo deverá ser realizado por dia, ou seja, pelo menos 1 commit será realizado por dia. O commit só poderá ser realizado caso o programa esteja compilando e funcionando (mesmo que não com todas as funcionalidades). Um ciclo de trabalho não pode ser iniciado em um dia e terminado no outro, ou seja, um ciclo iniciado hoje deve ser terminado hoje. Isso acarreta na necessidade de se iniciar um ciclo no início de cada dia de trabalho e terminar um ciclo no final de cada dia de trabalho. Pode acontecer de, ao final de um dia de trabalho, o programa não estar em estado compilável ou funcionando. O comportamento do programador será tornar o programa compilável e funcionando (mesmo que não esteja com todas as funcionalidades) para poder realizar o commit.

42 Rotina de Trabalho No momento de cada commit, o desenvolvedor deve incluir um status de suas modificações, de forma a alertar outros usuários do estado do programa. Os possíveis status de um desenvolvimento são: em desenvolvimento, em teste e funcionando. Sempre que for necessário que o desenvolvedor se ausente da Acropolis (para a CST, por exemplo), ele deverá completar um ciclo de trabalho.

43 Hierarquia de Diretórios No Os projetos criados no Subversion devem seguir a estrutura mostrada na figura, seguindo orientação do manual do programa. desenv/.../projeto branches tags trunk

44 Hierarquia de Diretórios Arquivos sob o trunk formam a linha principal de desenvolvimento do software. desenv/.../projeto branches tags trunk

45 Hierarquia de Diretórios A Arquivos sob tags são considerados marcos no tempo. Deve ser criada uma pasta abaixo de tags para cada nova versão. Os arquivos em tags, ao contrário dos arquivos em trunk, não devem ser utilizados para modificação. desenv/.../projeto branches tags V1_entrega_CST V2_entrega_CST trunk

46 Hierarquia de Diretórios Arquivos sob branches são considerados linhas paralelas de desenvolvimento. Assim como tags, deve ser criada uma pasta para cada branche. Ao contrário de tags, os branches podem ser usados para desenvolvimento. A criação de branches será abordada no treinamento avançado do Subversion. desenv/.../projeto branches modificacao_bug alt_funcionalidades tags trunk


Carregar ppt "Subversion- Treinamento Básico Controle de versões de Arquivos na Acropolis Atualizado em 20.05.2008."

Apresentações semelhantes


Anúncios Google