code and asset branching best practices session 315 philip wolfe, lead developer farm credit...

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

Upload: hugh-berry

Post on 03-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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/