1 / 12

Code and Asset Branching Best Practices

Code and Asset Branching Best Practices. Session 315 Philip Wolfe, Lead Developer Farm Credit Services of America. Lightning Round Agenda. Introduction to Source Asset Management Terms and Definitions Initial Source Control Setup Branching for Continuous Integration

strom
Download Presentation

Code and Asset Branching Best Practices

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Code and Asset Branching Best Practices Session 315 Philip Wolfe, Lead Developer Farm Credit Services of America

  2. Lightning Round Agenda • Introduction to Source Asset Management • Terms and Definitions • Initial Source Control Setup • Branching for Continuous Integration • Branching for Team Development • Branching to Support Release Activities • Wrap-up

  3. Introduction to Source Asset Management • As you work on your product, there are different versions of the product in use • Designers have the latest version • Quality Assurance has a stable version • Delivered projects are the “old” version • Source asset management outlines a way to keep the different versions organized

  4. Terms and Definitions • Branch (noun) – a copy of the assets • Development (Dev) Branch – A “Work in progress” version of the project • Main Branch – The most current, stable version of the project • Release Branch – A copy of the project that contains what was actually released • Branch (verb) – to make a copy of a folder and the contents of that folder.

  5. Terms and Definitions • Merge (verb) – To overwrite the contents of a destination folder with the changes from the source folder • Merging from Dev to Main means to make Main look Dev • Features vary by Source Control software • Forward Integrate (FI) – Merge from parent to child

  6. Terms and Definitions • Reverse Integrate (RI) – Merge from child to parent • Release Vehicle – How you deliver your product to your customer • Release to Manufacturing (RTM) – A major release of your project • Service Pack – A release that all customers should apply • Hotfix – A release that fixes specific defects for customers affected by those defects (not everyone)

  7. Initial Source Control Setup ProjectName DEVELOPMENT Source MAIN Source RELEASE Source

  8. Initial Source Control Setup DEVELOPMENT Merge Merge Merge Merge MAIN Merge RELEASE

  9. Branching for Continuous Integration Development Merge Merge Merge Merge Merge Merge Merge Merge Main

  10. Branching for Team Development Feature Team 1 Feature Team 2 Merge Merge Merge Merge Main

  11. Branching to Support Release Activities Development Merge Merge Merge Main Merge Merge Release 1 RTM Merge SP 1 RTM

  12. Wrap-up • Branching helps you have multiple running versions of the product at the same time • Branching helps you support continuous integration • Branching helps you manage releases • http://tfsbranchingguideii.codeplex.com/

More Related