Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft...

Post on 14-Jan-2016

233 views 7 download

Transcript of Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft...

Source Code ManagementSource Code Management

Per AhlbergDeveloper EvangelistDeveloper & Platform EvangelismMicrosoft Sweden

AgendaAgenda

Overview of Team Source Control Comparison with VSS Features for Structured Process

Team Foundation Team Foundation Source Code ControlSource Code Control

3-tier, web service architecture Built on SQL Server for robust,

transaction-based version control Integration with other VSTS tools for

automated workflow management Implementation of advanced SCM

concepts Migrate from

VSS, ClearCase, Source Depot

Source Code ControlSource Code ControlFeaturesFeatures

Complete version control feature set Uses Windows identities (rather than source

control specific) for access. Innovative new SCC features

Integrated checkin Parallel development Atomic checkins Remote development

Integration with other VS Team System tools

3 Tier3 Tier

Uses SQL Server as a database gives scale, reliability excellent manageability: online back-ups, etc.

ASP.NET web service middle tier improves performance because process is done close

to the data enables tuned client/server protocol protocols in addition to web services possible in future

Variety of client interfaces command-line, VS integration, etc.

Web AccessWeb Access

Allows access over the public internet doesn’t require RAS.

Public web service protocol allows integration and tools on other platforms

Simple HTML based access subset of functionality that allows rudimentary access

from other platforms: get, check-out, check-in, history, etc.

not SourceForge or gotdotnet workspaces, etc in V1

SecuritySecurity

Provides genuine security there’s no back door

Integrated with Windows authentication use Windows users and groups to define identities windows logon can authenticate clients

Flexible ACL based security fine grained ACLs: read, check-out, check-in, destroy,

administer, etc. Roles define groups of permissions

simple set of default roles make administration easy: read-only, developer, administrator

Most objects can be ACLed not just files: workspaces, labels, etc.

Source Code ControlSource Code ControlIntegrated Checkin ExperienceIntegrated Checkin Experience

Combines changes, comments, work items, policy, e-mail

Captures valuable data relationships Customizable for your process

Associate Work ItemsAssociate Work Items

User Simply checks associated work items

User Simply checks associated work items

Checkin Notes and NotificationCheckin Notes and Notification

•Entered at Checkin Time•Defined per Team Project•Included in Checkin E-mail•Used in Build documentation as well

•Entered at Checkin Time•Defined per Team Project•Included in Checkin E-mail•Used in Build documentation as well

Validate Policy DetailValidate Policy Detail

SCC Policy EngineSCC Policy EngineSCC Policy EngineSCC Policy Engine

Unit

Test

ing

U

nit

Test

ing

U

nit

Test

ing

U

nit

Test

ing

WI A

ssoci

ati

on

WI A

ssoci

ati

on

WI A

ssoci

ati

on

WI A

ssoci

ati

on

Sta

tic

An

aly

sis

Sta

tic

An

aly

sis

Sta

tic

An

aly

sis

Sta

tic

An

aly

sis

Rele

ase

Note

sR

ele

ase

Note

sR

ele

ase

Note

sR

ele

ase

Note

s

Cust

om

Polic

yC

ust

om

Polic

yC

ust

om

Polic

yC

ust

om

Polic

yPolicy Definitions•.NET Assemblies•Return Pass or Fail and message•Customer Extensible•User Over-ridable

Source Code ControlSource Code ControlParallel DevelopmentParallel Development

Multiple Releases Branching Merging

Multiple Checkouts

Source Code ControlSource Code ControlShelvingShelving

Interrupted workflow Transfer changes without checkin Checkpoint or share work in progress

Source Code ControlSource Code ControlRemote DevelopmentRemote Development

Remote development is a reality Distributed teams, at-home, offshore

A system built for the Internet Web service protocols Compatible with proxies and firewalls Optimized for high-latency networks

Change SetsChange Sets

Expand notion of “checked out files” to “pending changes” includes checkouts, adds, deletes, renames, etc.

Higher level view of changes in the system encapsulate all of the edits that make up a “logical change” history of entire changes rather than individual files unit for relationships: scheduling, bug tracking, etc

Check-in of pending change set is atomic guarantees everyone has a consistent view

Change sets can be “parked” on the server supports interrupted development, workflow, check-pointing,

sharing changes, etc.

Off-line SupportOff-line Support

Pending changes can be created off-line checkouts, adds, deletes, etc.

Returning on-line is simple and quick synchronizes client with server

Some reporting features available cache some data on client like local checkouts

No off-line check-ins for V1

SourceSafe vs Team FoundationSourceSafe vs Team Foundation

Visual SourceSafe 2005 Visual Studio 2005 Team Foundation

Description Version Control Integrated Software Lifecycle Suite

Team Size Individuals and Small Teams

Scalable

Storage File System SQL Server 2005

Security Application specific Windows Integrated

Remote Access New Web Service for VS Integration

Optimized Web Service

Features for Structured ProcessFeatures for Structured Process

Bug tracking integration Branching & merging Labels Workflow support/Extensibility

Bug Tracking IntegrationBug Tracking Integration

Relate bugs to change sets enable traceability: find changes to fix a bug, find bugs

that justified a change, etc.

Modify bug status based on check-ins resolve bug as part of check-in, approve change for

“production” when bug closed, etc.

Branching & MergingBranching & Merging

“Cheap enough” time and space to create a branch need not be a

consideration Use SourceSafe/Source Depot branching model

branches identified by folder rather than “branch id” Branching and merging granularity is flexible

from individual files and change sets to huge trees Powerful merging

track partial merges easily merge across multi-hop branches diff and merge tools can be customized per file type

Branches are manageable easy to enumerate, remove, etc.

LabelsLabels

Cheap for common point in time scenario Flexible for configuration management

file versions can be arbitrarily “tweaked”

Easy to manage/scope associated with particular files/folders

Branches can be easily created from labels Label categories

Allow easy filtering of labels to avoid clutter from daily build labels, etc.

Workflow/ExtensibilityWorkflow/Extensibility

Server side extensibility allows “triggers” on rich set of events server side API available published schema allowing extensions

Client extensibility events, client api, customizable components (editor,

diff viewer, merge tool, etc.) Extensible check-in process

hooks to allow workflow: check-in review/approval, automated check-in (gauntlet), etc.

Integration into bug tracking workflow

SummarySummary

Overview of Team Source Control Comparison with VSS Features for Structured Process