Branching and Merging Practices

Slides:



Advertisements
Similar presentations
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Advertisements

DEV306. LEGEND Branching / Merging point Development Test Production R1 R2 R3 Branch On Test Development Test Production Branch On Test.
MIX 09 4/15/ :14 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Windows 7 Training Microsoft Confidential. Windows ® 7 Compatibility Version Checking.
Feature: Web Client Keyboard Shortcuts © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
Session 1.
Built by Developers for Developers…. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
Feature: Assign an Item to Multiple Sites © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Feature: Print Remaining Documents © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Feature: Document Attachment –Replace OLE Notes © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
Feature: Customer Combiner and Modifier © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.

customer.
demo © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
demo Demo.
demo QueryForeign KeyInstance /sm:body()/x:Order/x:Delivery/y:TrackingId1Z
projekt202 © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks.
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.

How We Do Language Design at Microsoft (C#, Visual Basic, F#)
Tech·Ed  North America /11/ :01 AM SESSION CODE: DEV405
6/12/ :53 PM DEV311 Deep Dive into Microsoft Visual Studio Team Foundation Server 2010 Reporting Steven Borg, Principal ALM Consultant Northwest.
Tech·Ed North America /19/2018 3:29 PM
9/11/2018 5:53 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Tech·Ed North America /14/2018 7:13 PM
Возможности Excel 2010, о которых следует знать
Customer Experiences With Business Intelligence
Sysinternals Tutorials
T-SQL Power! The OVER Clause: Your Key to No-Sweat Problem Solving
Title of Presentation 11/22/2018 3:34 PM
What’s New In ASP.NET MVC 2
11/22/2018 8:05 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Jason Zander Unplugged
Title of Presentation 12/2/2018 3:48 PM
High Availability: A Contrarian View
Brian Keller Sr. Technical Evangelist Microsoft Session Code: DEV310
12/5/2018 3:24 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Windows 7 Deployment en Masse
Team Foundation Server 2010 for Everyone
12/27/ :01 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Authoring for Microsoft Silverlight 4 with Microsoft Expression Blend
Tech·Ed North America /17/2019 6:01 PM
Brian Keller Sr. Technical Evangelist Microsoft Session Code: DEV310
2/16/2019 8:43 AM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Building Silverlight Apps with RIA Services
Tech Ed North America /12/2019 6:45 AM Required Slide
Silverlight Debugging
8/04/2019 9:13 PM © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
A Lap Around Internet Explorer 9 For Developers
Виктор Хаджийски Катедра “Металургия на желязото и металолеене”
Tech·Ed North America /25/ :53 PM
Hack-proofing your Clients using Windows 7 Security!
PENSACOLA ENERGY WORK PLAN OCTOBER 10, 2016
Title of Presentation 5/12/ :53 PM
Шитманов Дархан Қаражанұлы Тарих пәнінің
Lap Around the Windows Azure Platform
Code First Development in Microsoft ADO.NET Entity Framework 4.1
Building BI applications using PowerPivot for Excel
Title of Presentation 5/24/2019 1:26 PM
5/24/2019 6:44 PM 1/8/18 Bell #10 In a world governed by the gods, is there any room for human will? Do human choices make a difference? EXPLAIN © 2007.
7/5/2019 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks.
Tech·Ed North America /6/2019 7:10 PM
Title of Presentation 7/24/2019 8:53 PM
Tech·Ed North America /7/2019 2:30 PM
Presentation transcript:

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.

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

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

Branching Patterns

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

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

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

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

Branch by Release Demo

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

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

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

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

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!

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.

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

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.

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.

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

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

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 www.microsoft.com/teched www.microsoft.com/learning Resources for IT Professionals Resources for Developers http://microsoft.com/technet http://microsoft.com/msdn © 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.

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.

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 registration Join us in Atlanta next year

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.

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.