source code management per ahlberg developer evangelist developer & platform evangelism...
TRANSCRIPT
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