Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Controle de versão

1 116 vues

Publié le

Saiba o essencial sobre controladores de versão e tenha uma visão gerencial do processo de gestão de versões de software.

Publié dans : Technologie
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full doc Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download doc Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici

Controle de versão

  1. 1. Controle de VersãoPrimeiro Tempo<br />Guilherme BalenaVersiani <guibv@take.io><br />
  2. 2. Entender elementos básicos e gerenciais de Controle de Versão sem se prender a uma tecnologia específica.<br />Objetivo<br />
  3. 3. Vocabulário básico<br />Mundos Paralelos<br />Padrões de Branching<br />Se der tempo: Anti-padrões<br />Agenda (45min)<br />
  4. 4. Palavras e conceitos básicos<br />Vocabulário Básico<br />
  5. 5. Repositório<br />Local de armazenamento dos arquivos-fonte.<br />Servidor<br />A máquina que contém o repositório.<br />Cliente<br />A máquina que conecta ao repositório.<br />Cópia de trabalho<br />Pasta local onde se realizada alterações.<br />Ambiente<br />
  6. 6. Cliente<br />Ambiente<br />Servidor<br />Cópia de trabalho<br />Repositório<br />
  7. 7. Adicionar (add)<br />Incluir o arquivo para controle de versão<br />Modificar<br />Alterar a cópia de trabalho<br />Submeter alterações (commit)<br />Enviar alterações locais para o repositório<br />Reverter (revert)<br />Descartar alterações locais e voltar à última revisão<br />Operações Básicas<br />
  8. 8. Operações Básicas<br />Reverter<br />Adicionar<br />Foobar.txt<br />Foobar.txt<br />Submeter<br />alterações<br />Submeter<br />alterações<br />Modificar<br />Apagar<br />Reverter<br />Submeter<br />alterações<br />Foobar.txt<br />Foobar.txt<br />
  9. 9. Revisão<br />Conjunto de alterações<br />Histórico (Changelog)<br />Lista de revisões realizadas durante um intervalo de tempo<br />Artefatos Básicos<br />
  10. 10. Artefatos Básicos<br />Última revisão (head)<br />1222<br />beltrano<br />Refactoring do módulo C.<br />file1.txt<br />file2.txt<br />file4.txt<br />Changelog / Histórico<br />1221<br />fulano<br />Inclusão do BUG B.<br />file2.txt<br />file4.txt<br />1220<br />ciclano<br />Inclusão da feature A.<br />file1.txt<br />file3.txt<br />Número da revisão<br />fulano<br />1219<br />file1.txt<br />file2.txt<br />file3.txt<br />file4.txt<br />Inclusão inicial.<br />Autor da revisão<br />Mensagem de identificação<br />Arquivos modificados<br />Revisão<br />
  11. 11. Baixar atualizações (update)<br />Sincronizar alterações do repositório para a cópia de trabalho<br />Sincronismo<br />
  12. 12. Sincronismo<br />1219<br />1220<br />1221<br />1222<br />Jerry<br />Submeter<br />alterações<br />Servidor<br />1222<br />1219<br />1220<br />1221<br />Baixar atualizações<br />Tom<br />1219<br />1220<br />1221<br />1222<br />
  13. 13. Tags<br />Criação de nomes fáceis para marcar o histórico de revisões.<br />Etiquetas<br />
  14. 14. Etiquetas<br />1.0.2<br />1222<br />1222<br />beltrano<br />Refactoring do módulo C.<br />file1.txt<br />file2.txt<br />file4.txt<br />1221<br />1221<br />fulano<br />Inclusão do BUG B.<br />file2.txt<br />file4.txt<br />1220<br />1220<br />ciclano<br />Inclusão da feature A.<br />file1.txt<br />file3.txt<br />1.0.1<br />fulano<br />1219<br />1219<br />file1.txt<br />file2.txt<br />file3.txt<br />file4.txt<br />Inclusão inicial.<br />
  15. 15. Diferenciais (diffs) e Remendos (patches)<br />A comparação entre dois arquivos texto de revisões diferentes é feita normalmente por um aplicativo diff-like que gera um formato de saída que alimenta outro aplicativo patch-like capaz de refazer as alterações.<br />Computar as diferenças é normalmente denominada de diff, enquanto que a “geração de um arquivo de diferenças”, que pode ser trocado em e-mails e outros meios, é denominada de patch.<br />Alterações<br />
  16. 16. Alterações – Exemplo<br />
  17. 17. Alterações – Exemplo<br />
  18. 18. Alterações – Exemplo<br />
  19. 19. diff 4<br />diff 1<br />diff 2<br />diff 3<br />1218<br />1219<br />1220<br />1221<br />1222<br />Alterações<br />
  20. 20. Conceitos de ramificação, junções e conflitos<br />Mundos Paralelos<br />
  21. 21. Mundos Paralelos<br />WhatIf? Marvel, 1977-201x.<br />
  22. 22. Universos paralelos oferecem infinitas possibilidades.<br />Permitem que você permaneça em segurança, abrigado no universo particular de sua escolha, isolado de todos os outros eventos em universos alternativos.<br />Mundos Paralelos<br />
  23. 23. Uma ramificação é como um mundo paralelo.<br />Alterações realizadas em um ramo não afetam outro ramo.<br />Assim como nos quadrinhos de What If?, apesar de sermos capazes de pensar inúmeros mundos paralelos, um número muito grande deles pode dificultar o entendimento.<br />Mundos Paralelos<br />
  24. 24. Ramificações (branch)<br />Z<br />Criar ramificação<br />X<br />Criar ramificação<br />Y<br />Criar ramificação<br />W<br />
  25. 25. Em algum momento, o código de um ramo precisa se juntar a outro ramo.<br />Junções (merge)<br />
  26. 26. Junções (merge)<br />X<br />Junção<br />Y<br />
  27. 27. Quando alterações são realizadas em paralelo no mesmo arquivo, conflitos acontecem.<br />Conflitos<br />
  28. 28. Como solucionar conflitos?<br />
  29. 29. Pergunta:<br />Os conflitos podem ser resolvidos automaticamente?<br />Como solucionar conflitos?<br />
  30. 30. Não!!!<br />Como solucionar conflitos?<br />
  31. 31. Antes de continuar:<br />É melhor evitar conflitos desnecessários.<br />Como solucionar conflitos?<br />
  32. 32. Como solucionar conflitos?<br />Junção de duas vias (two way merge)<br />A<br />B<br />A<br />C = A + B<br />C<br />B<br />
  33. 33. Como solucionar conflitos?<br />Junção de três vias (three way merge)<br />A<br />C<br />B<br />B<br />Junção<br />D = A + B + C<br />Criar ramificação<br />A<br />D<br />C<br />
  34. 34. Ferramentas: KDiff3<br />
  35. 35. Ferramentas: WinMerge<br />
  36. 36. Ferramentas: TortoiseMerge<br />
  37. 37. E existem várias outras…<br />Meld<br />Guiffy SureMerge<br />Ultracompare<br />DiffMerge<br />Notepad++<br />Apple Filemerge<br />Araxis<br />tkmerge<br />TFS diffmerge<br />xxdiff<br />...<br />
  38. 38. Mas qual devo escolher?<br />Escolha a que melhor se adaptar à sua equipe!<br />Mais informações:http://bit.ly/cknTrr<br />
  39. 39. Como manter ramificações durante o ciclo de vida dos softwares<br />Padrões de ramificação<br />
  40. 40. Mainline<br />1.0.1<br />1.0<br />criar<br />ramo<br />junção<br />1.1.1<br />1.1.2<br />1.1<br />criar<br />ramo<br />junção<br />1.2.1<br />1.2.2<br />1.2<br />criar<br />ramo<br />junção<br />junção<br />2.0.1<br />2.0<br />
  41. 41. Mainline<br />Trazer uma correção do ramo n ao ramo m requer m-n junções (complexidade linear em função do número de ramos).<br />
  42. 42. Mainline<br />Lição aprendida:<br />Realize junções o mais cedo e mais frequentemente possível.<br />
  43. 43. Mainline / Variant<br />2.0.1<br />2.0<br />criar<br />ramo<br />1.2.1<br />1.2.2<br />1.2<br />junção<br />junção<br />junção<br />criar<br />ramo<br />mainline<br />criar<br />ramo<br />criar<br />ramo<br />junção<br />junção<br />3.0<br />1.1<br />1.1.1<br />
  44. 44. Cenário:<br />Você acabou de desenvolver uma versão estável do projeto e precisa desenvolver uma nova versão com novas funcionalidades e ainda dar manutenção à última versão estável.<br />
  45. 45. Parallel Maintenance / Development Lines<br />Alternativa mais usada<br />1.1.1<br />1.1.2<br />1.1<br />junção<br />junção<br />criar<br />ramo<br />1.0.0<br />2.0.1<br />devel<br />
  46. 46. Parallel Maintenance / Development Lines<br />Atenção ao ramo interno<br />2.0.1<br />2.0.2<br />2.0<br />junção<br />junção<br />criar<br />ramo<br />1.0.0<br />devel<br />criar<br />ramo<br />junção<br />junção<br />1.1<br />1.1.1<br />
  47. 47. Cenário:<br />Você precisa desenvolver duas funcionalidades distintas num prazo muito curto.<br />(risos)<br />
  48. 48. Overlapping Release Lines<br />mainline<br />criar<br />ramo<br />func_1<br />junção<br />criar<br />ramo<br />junção<br />junção<br />func_2<br />
  49. 49. Cenário:<br />Você colocou um novo desenvolvedor trabalhando numa base de código muito arriscada; apesar de confiar nele, é melhor “moderar” suas alterações algum tempo.<br />
  50. 50. DockingLine<br />devel<br />junção<br />junção<br />junção<br />moderador<br />sincroniza<br />sincroniza<br />sincroniza<br />docking<br />line<br />modifica<br />estabiliza<br />modifica<br />estabiliza<br />modifica<br />estabiliza<br />desenvolvedor<br />
  51. 51. Cenário:<br />Suas atividades de desenvolvimento necessitam progredir em estágios discretos de maturidade: (1) propostas de modificação, (2) análise, (3) revisão, (4) testes de unidade, (5) testes de integração, (6) testes de sistema, etc.<br />
  52. 52. StagedIntegrationLines<br />devel<br />propostas<br />(1)<br />revisão<br />(2)<br />testes<br />(3)<br />
  53. 53. Alguns padrões para situações mais comuns.<br />Quando ramificar?<br />
  54. 54. Ramificação por Entrega<br />1.0<br />1.1<br />1.2<br />1.3<br />Release 1<br />Junção<br />Criar ramo<br />Release 2<br />2.1<br />2.2<br />2.3<br />2.0<br />
  55. 55. Ramificação por Atividade<br />Atividade 1<br />1.0<br />1.2<br />1.1<br />Devel<br />Atividade 2<br />
  56. 56. Ramificação por Componente<br />Componente A<br />1.0<br />1.2<br />1.1<br />Devel<br />Componentes A + B<br />Componente B<br />
  57. 57. Ramificação por Tecnologia<br />1.1<br />Android<br />1.1<br />1.2<br />Common<br />1.1<br />1.2<br />iOS<br />
  58. 58. O que pode acontecer quando as ramificações são mal gerenciadas<br />Anti-padrões<br />

×