1 / 27

Branching and Merging Practices

Required Slide. SESSION CODE: DPR303. Branching and Merging Practices . Jeff Levinson Senior ALM Consultant Northwest Cadence. Branching And Merging Agenda. What are we trying to solve? Basic branching patterns and scenarios Branch by Release Branch by Quality Branch by Feature

gen
Download Presentation

Branching and Merging Practices

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Required Slide SESSION CODE: DPR303 Branching and Merging Practices Jeff Levinson Senior ALM Consultant Northwest Cadence

  2. Branching And MergingAgenda • What are we trying to solve? • Basic branching patterns and scenarios • Branch by Release • Branch by Quality • Branch by Feature • Selecting patterns to meet business needs

  3. What problems does branching solve? • Know what code was released • Don’t release code that isn’t ready • Allow developers to experiment • Independent construction of features • Code freeze • Bottom line… reduce risk

  4. Branching Patterns

  5. Branch By Release (Staircase) • Maintain releases separately • Allows for fairly easy promotion of fixes which effect multiple versions • Easy handling of test cycles and timing • Can be used for single releases (as in a web application) • Can be used for multiple releases (having to maintain multiple versions at the same time) Development Test Production R1 Branch On Test R2 Branch On Test R3 Branching / Merging point Development LEGEND Test Production

  6. Branch By Release (Staircase)Handling bugs • Integration is always forward Development Test Production R1 Forward Integrate as necessary Forward Integrate as necessary Branch On Test R2 Forward Integrate as necessary Branch On Test R3 Branch On Test Branching / Merging Point R4 Development LEGEND Test Production

  7. Staircase Thoughts

  8. Branch by Release (Mainline) • Effectively supports multiple concurrent releases R1.1 R1 FI for Release FI for Release Main R2 R2.1 Branching / Merging point Release Branch LEGEND Development

  9. Mainline Thoughts

  10. Branch by Release Demo

  11. Branch by Quality • Flexibility • Supports the maximum number of scenarios • Minimal number of branches • Handles complex situations • Though not always easily • Numerous variations to meet various needs Prod Firm Branch QA Branch Soft Dev

  12. Branch by Quality - Variations Permanent Hotfix Safekeeping Prod R2 R1 Branch Prod QA Branch Branch QA Hot Fix Branch Dev Dev

  13. Bug Found In Test • What happens if a bug then occurs in production? • Straightforward fix strategy • Very easy, very quick Prod Rx Branch Code under test L1 L1 L2 QA FI Branch RI Hot Fix Dev R1 R2 Branching / Merging point Multiple steps done as a single unit of work LEGEND Branching / Merging Point + Label X Bug found

  14. Bug Found In ProductionFixed on QA Branch • When the rules don’t work – break them • But understand why! R1 Prod R1 Rollback to L2 Code under test Code under test Code under test Branch L2 L5 L1 L2 L3 L4 QA Branch Dev D1 D2 R3 R1 R2 Branching / Merging point Multiple steps done as a single unit of work LEGEND Branching / Merging Point + Label X Bug found

  15. Branch by Quality thoughts

  16. Branch by Quality DEMO

  17. Branch By Feature • Isolate features for various reasons • Longer time to develop • Won’t fit in an iteration • Independent of other features • Allows for release of features as ready • No dependency on when other features are ready • Provides additional options on top of Branch by Quality pattern. PROD QA DEV F1 F2 F3 Branching / Merging point Multiple steps done as a single unit of work LEGEND

  18. Branch by Feature Thoughts

  19. Branch by Feature DEMO

  20. Scenarios What to consider when deciding on a strategy Discussion

  21. ScenariosWhat to consider when deciding on a strategy • Customer can’t make up mind • Branch by Feature, but include test integration branches • Concurrent releases, not sure which feature in each release • Branch by Release (mainline) + Branch by Feature • Maintain only one release, short release (dev & test) cycles • Branch by Quality • Maintain only one release, long release (dev & test) cycles • Branch by Release

  22. Question & Answer Any scenarios you want to discuss?

  23. Required Slide Resources Learning • Sessions On-Demand & Community • Microsoft Certification & Training Resources www.microsoft.com/teched www.microsoft.com/learning • Resources for IT Professionals • Resources for Developers • http://microsoft.com/technet • http://microsoft.com/msdn

  24. Required Slide Complete an evaluation on CommNet and enter to win!

  25. Sign up for Tech·Ed 2011 and save $500 starting June 8 – June 31st http://northamerica.msteched.com/registration You can also register at the North America 2011 kiosk located at registrationJoin us in Atlanta next year

  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. 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.

  27. Required Slide

More Related