![Page 1: Code and Asset Branching Best Practices Session 315 Philip Wolfe, Lead Developer Farm Credit Services of America](https://reader035.vdocument.in/reader035/viewer/2022071808/56649ef35503460f94c04ecc/html5/thumbnails/1.jpg)
Code and Asset Branching Best Practices
Session 315Philip Wolfe, Lead DeveloperFarm Credit Services of America
![Page 2: Code and Asset Branching Best Practices Session 315 Philip Wolfe, Lead Developer Farm Credit Services of America](https://reader035.vdocument.in/reader035/viewer/2022071808/56649ef35503460f94c04ecc/html5/thumbnails/2.jpg)
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
![Page 3: Code and Asset Branching Best Practices Session 315 Philip Wolfe, Lead Developer Farm Credit Services of America](https://reader035.vdocument.in/reader035/viewer/2022071808/56649ef35503460f94c04ecc/html5/thumbnails/3.jpg)
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
![Page 4: Code and Asset Branching Best Practices Session 315 Philip Wolfe, Lead Developer Farm Credit Services of America](https://reader035.vdocument.in/reader035/viewer/2022071808/56649ef35503460f94c04ecc/html5/thumbnails/4.jpg)
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.
![Page 5: Code and Asset Branching Best Practices Session 315 Philip Wolfe, Lead Developer Farm Credit Services of America](https://reader035.vdocument.in/reader035/viewer/2022071808/56649ef35503460f94c04ecc/html5/thumbnails/5.jpg)
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
![Page 6: Code and Asset Branching Best Practices Session 315 Philip Wolfe, Lead Developer Farm Credit Services of America](https://reader035.vdocument.in/reader035/viewer/2022071808/56649ef35503460f94c04ecc/html5/thumbnails/6.jpg)
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)
![Page 7: Code and Asset Branching Best Practices Session 315 Philip Wolfe, Lead Developer Farm Credit Services of America](https://reader035.vdocument.in/reader035/viewer/2022071808/56649ef35503460f94c04ecc/html5/thumbnails/7.jpg)
Initial Source Control Setup
Project Name
DEVELOPMENT
MAIN
RELEASE
Source
Source
Source
![Page 8: Code and Asset Branching Best Practices Session 315 Philip Wolfe, Lead Developer Farm Credit Services of America](https://reader035.vdocument.in/reader035/viewer/2022071808/56649ef35503460f94c04ecc/html5/thumbnails/8.jpg)
Initial Source Control Setup
M A I N
D E V E L O P M E N T
Merge
Merge
R E L E A S EM
erge
Mer
ge
Merge
![Page 9: Code and Asset Branching Best Practices Session 315 Philip Wolfe, Lead Developer Farm Credit Services of America](https://reader035.vdocument.in/reader035/viewer/2022071808/56649ef35503460f94c04ecc/html5/thumbnails/9.jpg)
Branching for Continuous Integration
M a i n
D e v e l o p m e n t
Merge
Merge
Merge
Merge
Merge
Merge
Merge
Merge
![Page 10: Code and Asset Branching Best Practices Session 315 Philip Wolfe, Lead Developer Farm Credit Services of America](https://reader035.vdocument.in/reader035/viewer/2022071808/56649ef35503460f94c04ecc/html5/thumbnails/10.jpg)
Branching for Team Development
M a i n
F e a t u r e Te a m 2
F e a t u r e Te a m 1
Merge
Mer
ge
Mer
ge
Merge
![Page 11: Code and Asset Branching Best Practices Session 315 Philip Wolfe, Lead Developer Farm Credit Services of America](https://reader035.vdocument.in/reader035/viewer/2022071808/56649ef35503460f94c04ecc/html5/thumbnails/11.jpg)
R e l e a s e 1
Branching to Support Release Activities
M a i n
R T M
S P 1
R T M
Mer
ge
Mer
geM
erge
D e v e l o p m e n t
Merge
Mer
ge
Mer
ge
![Page 12: Code and Asset Branching Best Practices Session 315 Philip Wolfe, Lead Developer Farm Credit Services of America](https://reader035.vdocument.in/reader035/viewer/2022071808/56649ef35503460f94c04ecc/html5/thumbnails/12.jpg)
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/