Your SlideShare is downloading. ×
Branching and Merging Practices
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Branching and Merging Practices

2,792
views

Published on

Branching and Merging Practices …

Branching and Merging Practices

File Can be downloaded from:
http://community.scmgalaxy.com/

Published in: Technology

0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,792
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
7
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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
  • 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
    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
  • 7. Staircase Thoughts
  • 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. Mainline Thoughts
  • 10. Branch by Release
    Demo
  • 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
  • 15. Branch by Quality thoughts
  • 16. Branch by Quality
    DEMO
  • 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
  • 19. Branch by Feature
    DEMO
  • 20. Scenarios
    What to consider when deciding on a strategy
    Discussion
  • 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
  • 22. Question & Answer
    Any scenarios you want to discuss?
  • 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
  • 24. Required Slide
    Complete an evaluation on CommNet and enter to win!
  • 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
  • 26. © 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