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

23
Source Code Management Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden

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

Page 1: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

Source Code ManagementSource Code Management

Per AhlbergDeveloper EvangelistDeveloper & Platform EvangelismMicrosoft Sweden

Page 2: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

AgendaAgenda

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

Page 3: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

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

Page 4: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

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

Page 5: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

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.

Page 6: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

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

Page 7: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

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.

Page 8: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

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

Page 9: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

Associate Work ItemsAssociate Work Items

User Simply checks associated work items

User Simply checks associated work items

Page 10: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

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

Page 11: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

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

Page 12: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

Source Code ControlSource Code ControlParallel DevelopmentParallel Development

Multiple Releases Branching Merging

Multiple Checkouts

Page 13: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

Source Code ControlSource Code ControlShelvingShelving

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

Page 14: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

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

Page 15: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

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.

Page 16: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

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

Page 17: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

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

Page 18: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

Features for Structured ProcessFeatures for Structured Process

Bug tracking integration Branching & merging Labels Workflow support/Extensibility

Page 19: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

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.

Page 20: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

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.

Page 21: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

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.

Page 22: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

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

Page 23: Source Code Management Per Ahlberg Developer Evangelist Developer & Platform Evangelism Microsoft Sweden.

SummarySummary

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