Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Branching and Merging Practices
1. Branching and Merging Practices Required Slide SESSION CODE: DPR303 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
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
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
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. Permanent Hotfix Branch by Quality - Variations Safekeeping Prod R2 R1 Branch Prod QA Branch Branch QA Hot Fix Branch Dev Dev
13. Bug Found In Test Straightforward fix strategy Very easy, very quick Prod Rx Branch Code under test L1 L1 L2 What happens if a bug then occurs in production? 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 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 When the rules don’t work – break them But understand why! Branching / Merging point Multiple steps done as a single unit of work LEGEND Branching / Merging Point + Label X Bug found
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
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
23. Resources Required Slide 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
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