branching and merging and bears, oh my!

30
Branching and Merging and Bears! Imaginet and ALM… Efficiently Build Better Software http://www.imaginet.com

Upload: imaginet

Post on 20-Aug-2015

906 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Branching and Merging and Bears, Oh My!

Branching and Merging and Bears!

Imaginet and ALM… Efficiently Build Better Software

http://www.imaginet.com

Page 2: Branching and Merging and Bears, Oh My!

Agenda

• Branching Overview • Branching Models • Creating and

Managing Branches • Branch Visualization • Branch History

Page 3: Branching and Merging and Bears, Oh My!

What is a Branch?

• Copies – Separate copies of files – Independent evolution

• Branches

– Lightweight server copy – Changes tracked – Reconcile changes

– Purpose

• Multiple development efforts to the same sub-system • Separate teams or geographies • Separate releases or features • Exploratory development - keep or throw away

(Changes)

(Changes)

TRACK &

M

ERG

E (Changes)

(Changes)

???

Time

Page 4: Branching and Merging and Bears, Oh My!

Agenda

• Branching Overview • Branching Models • Creating and

Managing Branches • Branch Visualization • Branch History

Page 5: Branching and Merging and Bears, Oh My!

Common Branching Models

• Branch by: – Quality – Environment – Release – Team – Feature – Sprint

• Purpose:

Page 6: Branching and Merging and Bears, Oh My!

Common Branching Models

• Branch by: – Quality – Environment – Release – Team – Feature – Sprint

• Purpose: Separate “high-churn” less tested

code from that which is more mature. (cont.)

Merge Changes

High Quality / Well Tested

Intermediate Level(s)

Merge Changes

Lower Quality / Less Tested

Page 7: Branching and Merging and Bears, Oh My!

Common Branching Models

• Branch by: – Quality – Environment – Release – Team – Feature – Sprint

• Purpose: Frequently used to model

environments as “Promotion” groups.

“Promote” code between branches

Production Branch

Test / QA Branch

Primarily merge up

Development Branch

Page 8: Branching and Merging and Bears, Oh My!

Common Branching Models

• Branch by: – Quality – Environment – Release – Team – Feature – Sprint

• Purpose: Used when teams need to

support multiple software versions concurrently.

V1.0

V2.0

V3.0

Page 9: Branching and Merging and Bears, Oh My!

Common Branching Models

• Branch by: – Quality – Environment – Release – Team – Feature – Sprint

• Purpose: Allows separate teams or

geographies to share changes in a controlled fashion.

Team A

Team B

Main

Page 10: Branching and Merging and Bears, Oh My!

Common Branching Models

• Branch by: – Quality – Environment – Release – Team – Feature – Sprint

• Purpose: Branches created to isolate

changes for a specific purpose; frequently short-lived.

Feature B Feature A

Main

Page 11: Branching and Merging and Bears, Oh My!

Common Branching Models

• Branch by: – Quality – Environment – Release – Team – Feature – Sprint

• Purpose: Branches created to isolate

changes for a specific purpose; frequently short-lived.

Sprint A Sprint B

Main

Page 12: Branching and Merging and Bears, Oh My!

Mix and Match as Appropriate

V1.0 Release

V3.0 Release

V1.0 Dev

V2.0 Dev

V2.0 Release

Page 13: Branching and Merging and Bears, Oh My!

Branching Guidance

• Can cause complexity, so use with caution

– May use fewer branches or no branches – Couple with effective use of Labels and Shelvesets

• Branches vs. (branched) Folders

• Integrate in the ‘softest’ branch

– Includes Quality, Team, Sprint, and Feature

Page 14: Branching and Merging and Bears, Oh My!

Agenda

• Branching Overview • Branching Models • Creating and

Managing Branches • Branch Visualization • Branch History

Page 15: Branching and Merging and Bears, Oh My!

Branches in TFS 2012

• Three separate approaches: – Copies

• Not actually a branch • Generally discouraged

– Branched Folders

• Created with a branching relationship • Supports merges and tracking

– Branch

• As with branched folders but supports visualization

Page 16: Branching and Merging and Bears, Oh My!

Creating Branches

• Option 1: Convert Folder to Branch

– Note: You cannot convert a folder to a branch if it either contains a branch or is contained by a branch.

• Option 2: Branch from an existing branch

• Option 3: Branch a file or folder – May be used to create a branched folder instead of a branch

(not recommended)

Page 17: Branching and Merging and Bears, Oh My!

Managing Branching

• Develop an appropriate branching strategy

• May want to use labels instead of branches in some

cases

• More releases more branch complexity needed (service packs, hot fixes, etc.)

• Know when to add a new branch

Page 18: Branching and Merging and Bears, Oh My!

Agenda

• Branching Overview • Branching Models • Creating and

Managing Branches • Branch Visualization • Branch History

Page 19: Branching and Merging and Bears, Oh My!

Branch Visualization

Page 20: Branching and Merging and Bears, Oh My!

Agenda

• Branching Overview • Branching Models • Creating and

Managing Branches • Branch Visualization • Branch History

Page 21: Branching and Merging and Bears, Oh My!

Branch History

• Uses a timeline view to show Branch History

Page 22: Branching and Merging and Bears, Oh My!

DEMONSTRATION

• Branching and Versioning

Page 23: Branching and Merging and Bears, Oh My!

Summary

• Branching Overview

• Branching Models

• Creating and Managing Branches

• Branch Visualization

• Branch History

Page 24: Branching and Merging and Bears, Oh My!

Want to know more...?

Page 25: Branching and Merging and Bears, Oh My!

Imaginet’s New Visual Studio 2012 Website!

http://visualstudio.imaginet.com

Visit Imaginet’s new Visual Studio 2012 website, your one-stop hub for all your Visual Studio 2012 needs!

Page 26: Branching and Merging and Bears, Oh My!

TFS / Visual Studio 2012

• Managing Test Labs Without the Headaches

• November 29 (1:00-2:30pm CT)

• Lean, Kanban, and TFS • December 3 (1:00-2:30pm CT)

• Approaches to Kanban with TFS • December 6 (1:00-2:30pm CT) • December 20 (1:00-2:30pm CT)

Upcoming Fall Workshops & Webcasts: • Streamline Your Testing with Visual

Studio 2012 Testing Tools • December 13 (1:00-2:30pm CT)

• Getting Started with Coded UI Testing: Building Your First Automated Test

• December 17 (1:00-2:30pm CT)

Page 27: Branching and Merging and Bears, Oh My!

Email us at: [email protected]

ALM Planning & Implementation Services ALM Planning • ALM Assessment & Envisioning Workshops

(3 or 5 days) • VS & TFS Migration Planning Workshop

(5 days) • Microsoft Dev. Tools Deployment Planning

– TFS Deployment Planning (5 days) – Visual SourceSafe to TFS Migration Planning (3 Days) – Visual Studio Quality Tools Deployment Planning

(5 days)

TFS Adoption or Upgrade • TFS 2010 Adoption Quick Start

(5 or 10 days) • TFS 2012 Adoption Quick Start

(5 or 10 days) • TFS 2010 Upgrade Quick Start (10 days) • TFS 2012 Upgrade Quick Start (10 days) Remote Support • Remote Support for TFS & Visual Studio

Lab • Visual Studio Lab Management Quick Start

(10 days)

Testing • Manual Testing with Test Manager Quick

Start (5 days) • Visual Studio Testing Tools Quick Start

(10 days) • Visual Studio Automated Testing Quick Start

(5 days) • Visual Studio Load Testing Quick Start

(5 or 10 Days) Builds • Automated Build & Release Management

Quick Start (5 days) • Automated Build Center of Excellence (CoE)

Database • Visual Studio Database Tools Quick Start

(10 days) Integrations • Team Foundation Server (TFS) & Project

Server Integration Quick Start (10 days) • TFS & Quality Center Integration/Migration

Quick Start (10 days)

Page 28: Branching and Merging and Bears, Oh My!

For questions or more information, please contact us at:

[email protected] or (972) 607-4830

Page 29: Branching and Merging and Bears, Oh My!

Questions?

Page 30: Branching and Merging and Bears, Oh My!

http://www.imaginet.com