DEV306
LEGEND Branching / Merging point Development Test Production R1 R2 R3 Branch On Test Development Test Production Branch On Test
R1 R2 R3 R4 Branch On Test Development Test Production Forward Integrate as necessary Branch On Test Branch On Test Forward Integrate as necessary Forward Integrate as necessary LEGEND Development Test Production Branching / Merging Point
LEGEND Release Branch Development Branching / Merging point Main R1 R1.1 R2 R2.1 FI for Release
Demo
Dev QA Branch Prod Branch Firm Soft LEGEND Branching / Merging point Branch
Dev QA Branch Prod (Safekeeping) Branch R1 R2 Branch R3 LEGEND Branching / Merging point Branch
Dev QA Branch Prod Branch Hotfix Branch LEGEND Branching / Merging point Branch
R1 Dev QA Branch Prod Branch R2 L1L2 Rx Hot Fix Code under test L1 FI RI LEGEND X Branching / Merging Point + Label Bug found Multiple steps done as a single unit of work Branching / Merging point
R1 Code under test Dev QA Branch Prod Branch R2 L1 R1 L2 L2 Code under test D1 L3 Rollback to L2 R3 R1 L4 D2 Code under test L5 LEGEND X Branching / Merging Point + Label Bug found Multiple steps done as a single unit of work Branching / Merging point
Dev QA Prod (Safekeeping) Branch R1 Code under test LEGEND X Branching / Merging Point + Label Bug found Multiple steps done as a single unit of work Branching / Merging point R2 Code under test R3 Fix the bug RI Branch R2 Fixed on release branch
DEMO
DEV F1 F2 F3 QA PROD LEGEND Branching / Merging point Multiple steps done as a single unit of work
DEMO
What strategy? How many releases? Single Release time? ShortQualityLongReleaseMultipleConcurrent?Yes Release (Mainline) NoRelease Business is uncertain Iteration length? ShortQualityLongFeature
Pros and Cons
Pros 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
Pros 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
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!
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
Required Slide Track PMs will supply the content for this slide, which will be inserted during the final scrub.
Sessions On-Demand & CommunityMicrosoft Certification & Training Resources Resources for IT ProfessionalsResources for Developers Connect. Share. Discuss.
Scan the Tag to evaluate this session now on myTechEd Mobile