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

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

Capítulo 4, Branching and Merging, de Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato, Version Control with Subversion Grupo 5 André Ribeiro.

Apresentações semelhantes


Apresentação em tema: "Capítulo 4, Branching and Merging, de Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato, Version Control with Subversion Grupo 5 André Ribeiro."— Transcrição da apresentação:

1 Capítulo 4, Branching and Merging, de Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato, Version Control with Subversion Grupo 5 André Ribeiro Coelho Rafael de Souza Santos

2 2 Branch Linha de desenvolvimento que existe independentemente de outra linha no SVN, ramificação implícita Diferente de outros SCV

3 3 Layout Inicial do Repositório

4 4 Criando o Branch svn copy -m...

5 5 Trabalhando com o Branch svn checkout

6 6 Trabalhando com o Branch... E continua evoluindo com o trunk

7 7 Trabalhando com o Branch svn log –v (do branch)

8 8 Trabalhando com o Branch svn log –v (do trunk)

9 9 Merge Minimizar os conflitos replicar as mudanças durante a evolução do branch Versão 1.5 Changesets - conjunto de mudanças com um único nome

10 10 Mantendo o Branch em Sync Ainda não terminou as mudanças do branch

11 11 Mantendo o Branch em Sync svn merge ^/trunk ( do branch )

12 12 Reintegrando o Branch svn merge ^/trunk ( do branch )

13 13 Reintegrando o Branch svn merge -- reintegrate ^/branches/my-calc-branch

14 14 Reintegrando o Branch svn delete ^/branches/my-calc-branch \ -m...

15 15 Desfazendo mudanças svn merge -c -303 ^/trunk remove do Head, mas mantém o histórico remover definitivamente ADM

16 16 Ressuscitando item deletado svn merge não é uma boa opção svn copy mantém o histórico svn cat >./real.c não mantém o histórico

17 17 Cherrypicking Aplicar um changeset específico de um branch a outro identificar a diferença entre o changeset específico e o trunk svn diff -c 355 ^/trunk/ levar o conteúdo da revisão 355 pro trunk svn merge -c 355 ^/trunk/

18 18 Sintaxe do merge Leva o conceito de diff-and-apply e possui 3 parâmetros repositório inicial repositório final alvo do merge Exemplo: svn merge -r 100:200 my-working-copy

19 19 Reverter o merge É possível desfazer o resultado gerado do merge svn revert. --recursive

20 20 Rastreabilidade com o SVN Exibição através de log $ cd my-calc-branch $ svn log -q r390 | user | :01: (Fri, 22 Nov 2002) | 1 line r388 | user | :20: (Thu, 21 Nov 2002) | 2 lines r381 | user | :07: (Wed, 20 Nov 2002) | 2 lines r359 | user | :19: (Tue, 19 Nov 2002) | 2 lines r357 | user | :29: (Fri, 15 Nov 2002) | 2 lines r343 | user | :50: (Thu, 07 Nov 2002) | 2 lines r341 | user | :17: (Sun, 03 Nov 2002) | 2 lines r303 | sally | :14: (Tue, 29 Oct 2002) | 2 lines r98 | sally | :35: (Fri, 22 Feb 2002) | 2 lines

21 21 Rastreabilidade com o SVN Usando o histório do merge através do -g $ svn log -v -r 390 -g r390 | user | :01: (Fri, 22 Nov 2002) | 1 line Changed paths: M /branches/my-calc-branch/button.c M /branches/my-calc-branch/README Final merge of trunk changes to my-calc-branch r383 | sally | :19: (Thu, 21 Nov 2002) | 2 lines Changed paths: M /branches/my-calc-branch/button.c Merged via: r390 Fix inverse graphic error on button r382 | sally | :57: (Wed, 20 Nov 2002) | 2 lines Changed paths: M /branches/my-calc-branch/README

22 22 Rastreabilidade com o SVN Usando o comando svn blame para identificar alterações dentro do arquivo $ svn blame button.c … 390 user retval = inverse_func(button, path); 390 user return retval; 390 user } … $ svn blame button.c -g …G 383 sally retval = inverse_func(button, path); G 383 sally return retval; 390 user } …

23 23 Tags Fotografia do projeto no tempo Utiliza o mesmo conceito de copy utilizado na criação de branches $ svn copy \ \ -m "Tagging the 1.0 release of the 'calc' project." Committed revision 902.

24 24 Tags Crítica! usuário desavisado usuário mal intencionado solução de contorno via script do administrador apesar disso, não se recomenda o script

25 25 Tags Complexas Disponibilização da working-copy para outros desenvolvedores $ ls my-working-copy/ $ svn copy my-working-copy \ \ -m "Tag my existing working copy state." Committed revision 940.

26 26 Manutenção dos branches Organização dos diretórios do repositório /trunk /branches /tags Poderíamos então termos um diretório funcionando como uma prateleira? /shelf

27 27 Remoção de branches e tags Branches podem ser removidos e recuperados remoção $ svn delete \ -m "Removing obsolete branch of calc project." Committed revision 375. $ svn copy \ \ -m "Restore my-calc-branch." Committed revision 376. restauração

28 28 Políticas de branches comuns Release Branches desenvolvedores trabalhando no trunk o trunk é copiado para o release branch times trabalham em paralelo o branch é tagged e released

29 29 Políticas de branches comuns Feature Branches um branch temporário é criado para trabalhar em mudanças complexas nascem, são integrados no trunk e morrem são úteis quando uma modificação necessita de commits instáveis (quebrados)

30 30 Políticas de branches comuns Vendor Branches é geralmente usado quando depende-se de customizações em bibliotecas de terceiros cria-se um diretório /vendor adiciona-se a lib a este diretório (/vendor/libxpto)

31 31 Políticas de branches comuns Vendor Branches mantém-se uma versão atual (/vendor/libxpto/current) versões específicas (/vendor/libxpto/1.0)

32 32 Políticas de branches comuns Vendor Branches exemplo $ svn import /path/to/libcomplex-1.0 \ \ -m "importing initial 1.0 vendor drop" $ svn copy \ \ -m "tagging libcomplex-1.0" … $ svn copy \ \ -m "bringing libcomplex-1.0 into the main branch" $ cd working-copies/calc $ svn merge ^/vendor/libcomplex/1.0 \ ^/vendor/libcomplex/current \ libcomplex … # resolve all the conflicts between their changes and our changes $ svn commit -m "merging libcomplex-1.1 into the main branch"

33 Capítulo 4, Branching and Merging, de Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato, Version Control with Subversion Grupo 5 André Ribeiro Coelho Rafael de Souza Santos


Carregar ppt "Capítulo 4, Branching and Merging, de Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato, Version Control with Subversion Grupo 5 André Ribeiro."

Apresentações semelhantes


Anúncios Google