290 likes | 638 Views
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
E N D
Required Slide SESSION CODE: DPR303 Branching and Merging Practices Jeff Levinson Senior ALM Consultant Northwest Cadence
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
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
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
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
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
Branch by Release Demo
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
Branch by Quality - Variations Permanent Hotfix Safekeeping Prod R2 R1 Branch Prod QA Branch Branch QA Hot Fix Branch Dev Dev
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
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
Branch by Quality DEMO
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
Branch by Feature DEMO
Scenarios What to consider when deciding on a strategy Discussion
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
Question & Answer Any scenarios you want to discuss?
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
Required Slide Complete an evaluation on CommNet and enter to win!
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
© 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.