Branching and Merging Practices <br />Required Slide<br />SESSION CODE: DPR303<br />Jeff Levinson<br />Senior ALM Consulta...
Branching And MergingAgenda<br />What are we trying to solve?<br />Basic branching patterns and scenarios<br />Branch by R...
What problems does branching solve?<br />Know what code was released<br />Don’t release code that isn’t ready<br />Allow d...
Branching Patterns<br />
Branch By Release (Staircase)<br />Maintain releases separately<br />Allows for fairly easy promotion of fixes which effec...
Branch By Release (Staircase)Handling bugs<br />Integration is always forward<br />Development<br />Test<br />Production<b...
Staircase Thoughts<br />
Branch by Release (Mainline)<br />Effectively supports multiple concurrent releases<br />R1.1<br />R1<br />FI for Release<...
Mainline Thoughts<br />
Branch by Release<br />Demo<br />
Branch by Quality<br />Flexibility<br />Supports the maximum number of scenarios<br />Minimal number of branches<br />Hand...
Permanent Hotfix<br />Branch by Quality - Variations<br />Safekeeping<br />Prod<br />R2<br />R1<br />Branch<br />Prod<br /...
Bug Found In Test<br />Straightforward fix strategy<br />Very easy, very quick<br />Prod<br />Rx<br />Branch<br />Code und...
Bug Found In ProductionFixed on QA Branch<br />R1<br />Prod<br />R1<br />Rollback to L2<br />Code under <br />test<br />Co...
Branch by Quality thoughts<br />
Branch by Quality<br />DEMO<br />
Branch By Feature<br />Isolate features for various reasons<br />Longer time to develop<br />Won’t fit in an iteration<br ...
Branch by Feature Thoughts<br />
Branch by Feature<br />DEMO<br />
Scenarios<br />What to consider when deciding on a strategy<br />Discussion<br />
ScenariosWhat to consider when deciding on a strategy<br />Customer can’t make up mind<br />Branch by Feature, but include...
Question & Answer<br />Any scenarios you want to discuss?<br />
Resources<br />Required Slide<br />Learning<br />Sessions On-Demand & Community<br />Microsoft Certification & Training Re...
Required Slide<br />Complete an evaluation on CommNet and enter to win!<br />
Sign up for Tech·Ed 2011 and save $500 starting June 8 – June 31st<br />http://northamerica.msteched.com/registration<br /...
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be...
Required Slide<br />
Upcoming SlideShare
Loading in...5
×

Branching and Merging Practices

3,087

Published on

Branching and Merging Practices

File Can be downloaded from:
http://community.scmgalaxy.com/

Published in: Technology

Branching and Merging Practices

  1. 1. Branching and Merging Practices <br />Required Slide<br />SESSION CODE: DPR303<br />Jeff Levinson<br />Senior ALM Consultant<br />Northwest Cadence<br />
  2. 2. Branching And MergingAgenda<br />What are we trying to solve?<br />Basic branching patterns and scenarios<br />Branch by Release<br />Branch by Quality<br />Branch by Feature<br />Selecting patterns to meet business needs<br />
  3. 3. What problems does branching solve?<br />Know what code was released<br />Don’t release code that isn’t ready<br />Allow developers to experiment<br />Independent construction of features<br />Code freeze<br />Bottom line… reduce risk<br />
  4. 4. Branching Patterns<br />
  5. 5. Branch By Release (Staircase)<br />Maintain releases separately<br />Allows for fairly easy promotion of fixes which effect multiple versions<br />Easy handling of test cycles and timing<br />Can be used for single releases (as in a web application)<br />Can be used for multiple releases (having to maintain multiple versions at the same time)<br />Development<br />Test<br />Production<br />R1<br />Branch<br />On Test<br />R2<br />Branch<br />On Test<br />R3<br />Branching / Merging<br />point<br />Development<br />LEGEND<br />Test<br />Production<br />
  6. 6. Branch By Release (Staircase)Handling bugs<br />Integration is always forward<br />Development<br />Test<br />Production<br />R1<br />Forward<br />Integrate as<br />necessary<br />Forward<br />Integrate as<br />necessary<br />Branch<br />On Test<br />R2<br />Forward<br />Integrate as<br />necessary<br />Branch<br />On Test<br />R3<br />Branch<br />On Test<br />Branching / Merging<br />Point <br />R4<br />Development<br />LEGEND<br />Test<br />Production<br />
  7. 7. Staircase Thoughts<br />
  8. 8. Branch by Release (Mainline)<br />Effectively supports multiple concurrent releases<br />R1.1<br />R1<br />FI for Release<br />FI for Release<br />Main<br />R2<br />R2.1<br />Branching / Merging<br />point<br />Release Branch<br />LEGEND<br />Development<br />
  9. 9. Mainline Thoughts<br />
  10. 10. Branch by Release<br />Demo<br />
  11. 11. Branch by Quality<br />Flexibility<br />Supports the maximum number of scenarios<br />Minimal number of branches<br />Handles complex situations<br />Though not always easily<br />Numerous variations to meet various needs<br />Prod<br />Firm<br />Branch<br />QA<br />Branch<br />Soft<br />Dev<br />
  12. 12. Permanent Hotfix<br />Branch by Quality - Variations<br />Safekeeping<br />Prod<br />R2<br />R1<br />Branch<br />Prod<br />QA<br />Branch<br />Branch<br />QA<br />Hot Fix<br />Branch<br />Dev<br />Dev<br />
  13. 13. Bug Found In Test<br />Straightforward fix strategy<br />Very easy, very quick<br />Prod<br />Rx<br />Branch<br />Code under test<br />L1<br />L1<br />L2<br />What happens if a bug then occurs in production?<br />QA<br />FI<br />Branch<br />RI<br />Hot Fix<br />Dev<br />R1<br />R2<br />Branching / Merging<br />point<br />Multiple steps<br />done as a single<br />unit of work<br />LEGEND<br />Branching / Merging<br />Point + Label<br />X<br />Bug found<br />
  14. 14. Bug Found In ProductionFixed on QA Branch<br />R1<br />Prod<br />R1<br />Rollback to L2<br />Code under <br />test<br />Code under <br />test<br />Code under <br />test<br />Branch<br />L2<br />L5<br />L1<br />L2<br />L3<br />L4<br />QA<br />Branch<br />Dev<br />D1<br />D2<br />R3<br />R1<br />R2<br />When the rules don’t work – break them<br />But understand why!<br />Branching / Merging<br />point<br />Multiple steps<br />done as a single<br />unit of work<br />LEGEND<br />Branching / Merging<br />Point + Label<br />X<br />Bug found<br />
  15. 15. Branch by Quality thoughts<br />
  16. 16. Branch by Quality<br />DEMO<br />
  17. 17. Branch By Feature<br />Isolate features for various reasons<br />Longer time to develop<br />Won’t fit in an iteration<br />Independent of other features<br />Allows for release of features as ready<br />No dependency on when other features are ready<br />Provides additional options on top of Branch by Quality pattern.<br />PROD<br />QA<br />DEV<br />F1<br />F2<br />F3<br />Branching / <br />Merging point<br />Multiple steps<br />done as a single<br />unit of work<br />LEGEND<br />
  18. 18. Branch by Feature Thoughts<br />
  19. 19. Branch by Feature<br />DEMO<br />
  20. 20. Scenarios<br />What to consider when deciding on a strategy<br />Discussion<br />
  21. 21. ScenariosWhat to consider when deciding on a strategy<br />Customer can’t make up mind<br />Branch by Feature, but include test integration branches<br />Concurrent releases, not sure which feature in each release<br />Branch by Release (mainline) + Branch by Feature <br />Maintain only one release, short release (dev & test) cycles<br />Branch by Quality<br />Maintain only one release, long release (dev & test) cycles<br />Branch by Release<br />
  22. 22. Question & Answer<br />Any scenarios you want to discuss?<br />
  23. 23. Resources<br />Required Slide<br />Learning<br />Sessions On-Demand & Community<br />Microsoft Certification & Training Resources<br />www.microsoft.com/teched<br />www.microsoft.com/learning<br />Resources for IT Professionals<br />Resources for Developers<br />http://microsoft.com/technet<br />http://microsoft.com/msdn<br />
  24. 24. Required Slide<br />Complete an evaluation on CommNet and enter to win!<br />
  25. 25. Sign up for Tech·Ed 2011 and save $500 starting June 8 – June 31st<br />http://northamerica.msteched.com/registration<br /> <br />You can also register at the North America 2011 kiosk located at registrationJoin us in Atlanta next year<br />
  26. 26. © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.<br />The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.<br />
  27. 27. Required Slide<br />

×