SlideShare une entreprise Scribd logo
1  sur  27
Branching
    in
 TFS 2010

 Part I
   by John Varan
Branching in TFS 2010: Part I

…you need to develop just the right
amount of fear of branching. This
delicate balance seems to be very
difficult to find. Most people either
have too much fear or not enough.”

                             ~Eric Sink
Branching in TFS 2010: Part I


                   Branching is like creating a
                   parallel universe.


• A branch is a child universe spawned off the main
  (parent) universe.

• The child universe evolves independently.

• Branching is for ISOLATION
Branching in TFS 2010: Part I




         A simple parent-child branch
Branching in TFS 2010: Part I
    Why do you need branching?
    Have you ever…

• needed a code freeze?
• wanted to know what code was included in a release?
• wanted to avoid releasing code that wasn’t ready?
• wanted to allow developers to have an experimental
  playground?
• found yourself putting everything on hold for refactoring?

    If you answered yes to any of these, you need branching!
Branching in TFS 2010: Part I
Some basic branching terminology:
• Main Branch – the primary branch that all changes are
  eventually merged into. Also known as the trunk or
  mainline branch.

• Development Branch – contains all active development.
  In many scenarios, it’s the same as the main branch.

• Release Branches – each release of a product should
  create a new branch, as a child of the main branch.
Branching in TFS 2010: Part I

• Forward Integration – the act of merging changes from a
  parent to a child branch.
Branching in TFS 2010: Part I

• Reverse Integration – the act of merging changes from a
  child to a parent branch.
Branching in TFS 2010: Part I

• Baseless Merge – the act of merging changes from one
  branch to another, where the two branches are not in a
  parent-child relationship.
Branching in TFS 2010: Part I



 Branching can be tricky, and it does
 require some skill.

 Discipline is the key!
Branching in TFS 2010: Part I
  Five Keys to Making Branching Successful

• Stick to correct process, even if it seems trivial.

• Avoid branches off other branches, if possible.

• Merge with Forward and Reverse Integration often.

• Do not confuse branching with shelving.

• Never have code freezes.
Branching in TFS 2010: Part I
         Seven Signs Something is Wrong
• Merging is put off to the end.

• Merging happens too often.

• Merging never happens.

• Purpose of a branch isn’t clear.

• You find yourself having to halt development efforts.

• Branches are used to isolate developers instead of code.

• A change is merged to an older release.
Branching in TFS 2010: Part I
           Branching Patterns


• There are 3 primary patterns.

• Each has several variations.

• Hybrid patterns are also possible.
Branching in TFS 2010: Part I
            Release Branching


• Two main variations: stairstep and
  mainline.

• Simplest pattern

• Least flexible
Branching in TFS 2010: Part I
          Stairstep Release Branching

•   Works on single release at a time.

•   New branch for each release.
Branching in TFS 2010: Part I
          Stairstep Release Branching

•   Requires least amount of branching

•   Not very flexible

•   Can require multiple test and build
    environments
Branching in TFS 2010: Part I
          Mainline Release Branching

•   One main branch continues indefinitely

•   Each release branches off of it
Branching in TFS 2010: Part I
          Mainline Release Branching

•   Supports concurrent release development

•   Complex

•   Can require multiple test environments
Branching in TFS 2010: Part I
               Quality Branching

•   Usually has 3 separate branches

•   Changes are “promoted” from one to the other
Branching in TFS 2010: Part I
               Quality Branching

•   More flexible

•   Complex

•   Can require a dedicated person to manage
    branching
Branching in TFS 2010: Part I
                Feature Branching

•   Separate branch for each major feature

•   Very flexible
Branching in TFS 2010: Part I
               Feature Branching

•   Most flexible

•   Complex

•   Can require separate test environment per
    feature (but there’s a workaround)
Branching in TFS 2010: Part I
              Agile Development

•   Shouldn’t make a difference whether you use
    Agile or not

•   But it does…

•   When do you run continuous builds?

•   Which branches cause continuous builds?
Branching in TFS 2010: Part I
               Agile Development

•   Feature branching (or a hybrid of it) is most
    suitable for Agile

•   Feature branch = story branch

•   Continuous build tied to main branch only, not
    to each feature branch
Branching in TFS 2010: Part I
                  Shared Code

How to handle shared libraries and code?

• Many ways to solve this problem

• Sharing the actual source isn’t ideal
  • Complicated
  • Problematic with automated builds
  • Inflexible
Branching in TFS 2010: Part I
                  Shared Code

Instead, share the compiled binary assembly.

• Shared library is a separate project

• Compiled assembly stored in TFS

• Versions of compiled assembly are branched into
  the “Lib” folder of a referencing project
Branching in TFS 2010: Part I
                    End of Part I

Part II: Our solution and how to configure and use it
in TFS.

Contenu connexe

Similaire à Branching in TFS 2010 Part I (Branching Theory)

10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Molieremfrancis
 
Git Branching – the battle of the ages
Git Branching – the battle of the agesGit Branching – the battle of the ages
Git Branching – the battle of the agesJasmin Fluri
 
Banching can change your life
Banching can change your lifeBanching can change your life
Banching can change your lifeVlad Vesa
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Hannes Lowette
 
Entity Framework: To the Unit of Work Design Pattern and Beyond
Entity Framework: To the Unit of Work Design Pattern and BeyondEntity Framework: To the Unit of Work Design Pattern and Beyond
Entity Framework: To the Unit of Work Design Pattern and BeyondSteve Westgarth
 
TFS 2015 Upgrade Tips & Tricks
TFS 2015 Upgrade Tips & TricksTFS 2015 Upgrade Tips & Tricks
TFS 2015 Upgrade Tips & TricksInCycleSoftware
 
Tfs 2015 Upgrade Tips and Tricks
Tfs 2015 Upgrade Tips and TricksTfs 2015 Upgrade Tips and Tricks
Tfs 2015 Upgrade Tips and TricksInCycleSoftware
 
Clarive 7 Branching Model
Clarive 7 Branching ModelClarive 7 Branching Model
Clarive 7 Branching ModelClarive
 
Enhance Productivity using SharePoint
Enhance Productivity using SharePointEnhance Productivity using SharePoint
Enhance Productivity using SharePointMilton Goh
 
How to guarantee your change is integrated to Moodle core
How to guarantee your change is integrated to Moodle coreHow to guarantee your change is integrated to Moodle core
How to guarantee your change is integrated to Moodle coreDan Poltawski
 
50 Shades of Fail KScope16
50 Shades of Fail KScope1650 Shades of Fail KScope16
50 Shades of Fail KScope16Christian Berg
 
2018-09 - F# and Fable
2018-09 - F# and Fable2018-09 - F# and Fable
2018-09 - F# and FableEamonn Boyle
 
Branches are for Trees. How to develop software without them.
Branches are for Trees. How to develop software without them.Branches are for Trees. How to develop software without them.
Branches are for Trees. How to develop software without them.Thoughtworks
 
Do's and don'ts for Office 365 development
Do's and don'ts for Office 365 developmentDo's and don'ts for Office 365 development
Do's and don'ts for Office 365 developmentChris O'Brien
 
7 Fatal Mistakes Made When Migrating From SP 2007 to SP 2010
7 Fatal Mistakes Made When Migrating  From SP 2007 to SP 20107 Fatal Mistakes Made When Migrating  From SP 2007 to SP 2010
7 Fatal Mistakes Made When Migrating From SP 2007 to SP 2010Netwoven Inc.
 
Alm with tfs 2013
Alm with tfs 2013Alm with tfs 2013
Alm with tfs 2013MSDEVMTL
 
Introduction to the Managed Extensibility Framework in Silverlight
Introduction to the Managed Extensibility Framework in SilverlightIntroduction to the Managed Extensibility Framework in Silverlight
Introduction to the Managed Extensibility Framework in SilverlightJeremy Likness
 

Similaire à Branching in TFS 2010 Part I (Branching Theory) (20)

10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
 
Git Branching – the battle of the ages
Git Branching – the battle of the agesGit Branching – the battle of the ages
Git Branching – the battle of the ages
 
Banching can change your life
Banching can change your lifeBanching can change your life
Banching can change your life
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
Entity Framework: To the Unit of Work Design Pattern and Beyond
Entity Framework: To the Unit of Work Design Pattern and BeyondEntity Framework: To the Unit of Work Design Pattern and Beyond
Entity Framework: To the Unit of Work Design Pattern and Beyond
 
Basic Git Intro
Basic Git IntroBasic Git Intro
Basic Git Intro
 
TFS 2015 Upgrade Tips & Tricks
TFS 2015 Upgrade Tips & TricksTFS 2015 Upgrade Tips & Tricks
TFS 2015 Upgrade Tips & Tricks
 
Tfs 2015 Upgrade Tips and Tricks
Tfs 2015 Upgrade Tips and TricksTfs 2015 Upgrade Tips and Tricks
Tfs 2015 Upgrade Tips and Tricks
 
Clarive 7 Branching Model
Clarive 7 Branching ModelClarive 7 Branching Model
Clarive 7 Branching Model
 
Enhance Productivity using SharePoint
Enhance Productivity using SharePointEnhance Productivity using SharePoint
Enhance Productivity using SharePoint
 
Git workflows
Git workflowsGit workflows
Git workflows
 
How to guarantee your change is integrated to Moodle core
How to guarantee your change is integrated to Moodle coreHow to guarantee your change is integrated to Moodle core
How to guarantee your change is integrated to Moodle core
 
50 Shades of Fail KScope16
50 Shades of Fail KScope1650 Shades of Fail KScope16
50 Shades of Fail KScope16
 
2018-09 - F# and Fable
2018-09 - F# and Fable2018-09 - F# and Fable
2018-09 - F# and Fable
 
Branches are for Trees. How to develop software without them.
Branches are for Trees. How to develop software without them.Branches are for Trees. How to develop software without them.
Branches are for Trees. How to develop software without them.
 
Ee
EeEe
Ee
 
Do's and don'ts for Office 365 development
Do's and don'ts for Office 365 developmentDo's and don'ts for Office 365 development
Do's and don'ts for Office 365 development
 
7 Fatal Mistakes Made When Migrating From SP 2007 to SP 2010
7 Fatal Mistakes Made When Migrating  From SP 2007 to SP 20107 Fatal Mistakes Made When Migrating  From SP 2007 to SP 2010
7 Fatal Mistakes Made When Migrating From SP 2007 to SP 2010
 
Alm with tfs 2013
Alm with tfs 2013Alm with tfs 2013
Alm with tfs 2013
 
Introduction to the Managed Extensibility Framework in Silverlight
Introduction to the Managed Extensibility Framework in SilverlightIntroduction to the Managed Extensibility Framework in Silverlight
Introduction to the Managed Extensibility Framework in Silverlight
 

Dernier

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Dernier (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Branching in TFS 2010 Part I (Branching Theory)

  • 1. Branching in TFS 2010 Part I by John Varan
  • 2. Branching in TFS 2010: Part I …you need to develop just the right amount of fear of branching. This delicate balance seems to be very difficult to find. Most people either have too much fear or not enough.” ~Eric Sink
  • 3. Branching in TFS 2010: Part I Branching is like creating a parallel universe. • A branch is a child universe spawned off the main (parent) universe. • The child universe evolves independently. • Branching is for ISOLATION
  • 4. Branching in TFS 2010: Part I A simple parent-child branch
  • 5. Branching in TFS 2010: Part I Why do you need branching? Have you ever… • needed a code freeze? • wanted to know what code was included in a release? • wanted to avoid releasing code that wasn’t ready? • wanted to allow developers to have an experimental playground? • found yourself putting everything on hold for refactoring? If you answered yes to any of these, you need branching!
  • 6. Branching in TFS 2010: Part I Some basic branching terminology: • Main Branch – the primary branch that all changes are eventually merged into. Also known as the trunk or mainline branch. • Development Branch – contains all active development. In many scenarios, it’s the same as the main branch. • Release Branches – each release of a product should create a new branch, as a child of the main branch.
  • 7. Branching in TFS 2010: Part I • Forward Integration – the act of merging changes from a parent to a child branch.
  • 8. Branching in TFS 2010: Part I • Reverse Integration – the act of merging changes from a child to a parent branch.
  • 9. Branching in TFS 2010: Part I • Baseless Merge – the act of merging changes from one branch to another, where the two branches are not in a parent-child relationship.
  • 10. Branching in TFS 2010: Part I Branching can be tricky, and it does require some skill. Discipline is the key!
  • 11. Branching in TFS 2010: Part I Five Keys to Making Branching Successful • Stick to correct process, even if it seems trivial. • Avoid branches off other branches, if possible. • Merge with Forward and Reverse Integration often. • Do not confuse branching with shelving. • Never have code freezes.
  • 12. Branching in TFS 2010: Part I Seven Signs Something is Wrong • Merging is put off to the end. • Merging happens too often. • Merging never happens. • Purpose of a branch isn’t clear. • You find yourself having to halt development efforts. • Branches are used to isolate developers instead of code. • A change is merged to an older release.
  • 13. Branching in TFS 2010: Part I Branching Patterns • There are 3 primary patterns. • Each has several variations. • Hybrid patterns are also possible.
  • 14. Branching in TFS 2010: Part I Release Branching • Two main variations: stairstep and mainline. • Simplest pattern • Least flexible
  • 15. Branching in TFS 2010: Part I Stairstep Release Branching • Works on single release at a time. • New branch for each release.
  • 16. Branching in TFS 2010: Part I Stairstep Release Branching • Requires least amount of branching • Not very flexible • Can require multiple test and build environments
  • 17. Branching in TFS 2010: Part I Mainline Release Branching • One main branch continues indefinitely • Each release branches off of it
  • 18. Branching in TFS 2010: Part I Mainline Release Branching • Supports concurrent release development • Complex • Can require multiple test environments
  • 19. Branching in TFS 2010: Part I Quality Branching • Usually has 3 separate branches • Changes are “promoted” from one to the other
  • 20. Branching in TFS 2010: Part I Quality Branching • More flexible • Complex • Can require a dedicated person to manage branching
  • 21. Branching in TFS 2010: Part I Feature Branching • Separate branch for each major feature • Very flexible
  • 22. Branching in TFS 2010: Part I Feature Branching • Most flexible • Complex • Can require separate test environment per feature (but there’s a workaround)
  • 23. Branching in TFS 2010: Part I Agile Development • Shouldn’t make a difference whether you use Agile or not • But it does… • When do you run continuous builds? • Which branches cause continuous builds?
  • 24. Branching in TFS 2010: Part I Agile Development • Feature branching (or a hybrid of it) is most suitable for Agile • Feature branch = story branch • Continuous build tied to main branch only, not to each feature branch
  • 25. Branching in TFS 2010: Part I Shared Code How to handle shared libraries and code? • Many ways to solve this problem • Sharing the actual source isn’t ideal • Complicated • Problematic with automated builds • Inflexible
  • 26. Branching in TFS 2010: Part I Shared Code Instead, share the compiled binary assembly. • Shared library is a separate project • Compiled assembly stored in TFS • Versions of compiled assembly are branched into the “Lib” folder of a referencing project
  • 27. Branching in TFS 2010: Part I End of Part I Part II: Our solution and how to configure and use it in TFS.