Presentation is loading. Please wait.

Presentation is loading. Please wait.

Branching and Merging Practices

Similar presentations


Presentation on theme: "Branching and Merging Practices"— Presentation transcript:

1 Branching and Merging Practices
Tech Ed North America 2010 11/27/2018 6:50 PM Required Slide SESSION CODE: DPR303 Branching and Merging Practices Jeff Levinson Senior ALM Consultant Northwest Cadence © 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.

2 Branching And Merging Agenda
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
Development Test Production Integration is always forward 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 Pros Cons Staircase Thoughts Simplest model to use
Good choice for single version web applications Same pattern for hot fix or maintenance release Minimal amount of branching Cons Not as flexible as other patterns More active releases = more difficulty doing Forward Integration Multiple test environments needed Doesn’t support multiple concurrent releases well May have to re-create the builds for new releases

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 Pros Cons Mainline Thoughts
No dependencies on any version except the prior .x version Cons Branching can get very complicated Requires numerous merges and active management Requires numerous test environments Initial release from main, subsequent releases from release branch Forward integrating bug fixes is difficult

10 Branch by Release Demo

11 Branch by Quality Flexibility Minimal number of branches
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 R1 R2 Branch Prod QA Branch Branch Hot Fix QA Branch Dev Dev

13 Bug Found In Test Straightforward fix strategy Very easy, very quick
Prod Rx Branch Code under test L1 L1 L2 QA What happens if a bug then occurs in production? 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 Production Fixed on QA Branch
Rollback to L2 Code under test Code under test Code under test Branch L1 L2 L3 L2 L4 L5 QA Branch Dev D1 D2 R1 R2 R3 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

15 Branch by Quality thoughts
Pros Maximum flexibility Easy ability to deal with multiple branches Supports multiple paths to production (multiple test environments, fixes from different branches) Cons Can be extremely complex Requires a dedicated build person Without documented processes, can spiral out of control and you can “lose” source code because you can’t find it!

16 DEMO Branch by Quality Tech Ed North America 2010 11/27/2018 6:50 PM
© 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.

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
Pros Separates out features Allows for flexibility in release Allows for easier debugging (a problem with one feature doesn’t effect another feature) Builds on the Branch by Quality pattern Helps deal with longer running features Cons Can get as complicated as Branch by Quality Feature teams need to remember to sync often with dev branch Can get confusing for teams working on multiple features Requires at least one test environment per feature May need multiple integration branches

19 DEMO Branch by Feature Tech Ed North America 2010 11/27/2018 6:50 PM
© 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.

20 Discussion Scenarios What to consider when deciding on a strategy
Tech Ed North America 2010 11/27/2018 6:50 PM Scenarios What to consider when deciding on a strategy Discussion © 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.

21 Scenarios What 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 Any scenarios you want to discuss?
Question & Answer Any scenarios you want to discuss?

23 Resources Learning Required Slide www.microsoft.com/teched
Tech Ed North America 2010 11/27/2018 6:50 PM Required Slide Resources Learning Sessions On-Demand & Community Microsoft Certification & Training Resources Resources for IT Professionals Resources for Developers © 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.

24 Complete an evaluation on CommNet and enter to win!
Tech Ed North America 2010 11/27/2018 6:50 PM Required Slide Complete an evaluation on CommNet and enter to win! © 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.

25 Sign up for Tech·Ed 2011 and save $500 starting June 8 – June 31st
You can also register at the North America 2011 kiosk located at registration Join us in Atlanta next year

26 Tech Ed North America 2010 11/27/2018 6:50 PM
© 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. © 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 Tech Ed North America 2010 11/27/2018 6:50 PM
© 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.


Download ppt "Branching and Merging Practices"

Similar presentations


Ads by Google