source control with team foundation server martin woodward teamprise

40

Upload: hortense-hines

Post on 24-Dec-2015

220 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Source Control with Team Foundation Server Martin Woodward Teamprise
Page 2: Source Control with Team Foundation Server Martin Woodward Teamprise

Source Control with Team Source Control with Team Foundation Server Foundation Server

Martin WoodwardMartin Woodward

TeampriseTeamprise

Page 3: Source Control with Team Foundation Server Martin Woodward Teamprise

Visual Studio Team SystemVisual Studio Team System

Page 4: Source Control with Team Foundation Server Martin Woodward Teamprise

Team Foundation ServerTeam Foundation Server

Work Item Tracking

Change Management Reporting

Project Site

Version ControlSource Control

Page 5: Source Control with Team Foundation Server Martin Woodward Teamprise

Team System DeploymentTeam System Deployment

Dev Team (Local)Dev Team (Remote)

Business User

TCP/IPHTTP / S

Win 2003 ServerSQL Server 2005IIS 6.0

Team Foundation ServerTeam Foundation Server

Build Server

Version Control Proxy (Remote)Active Directory

Page 6: Source Control with Team Foundation Server Martin Woodward Teamprise

What is Source ControlWhat is Source Control

A place to store stuffA place to store stuff

Historical record of changes over timeHistorical record of changes over time

Allows developers to work in parallelAllows developers to work in parallel

Page 7: Source Control with Team Foundation Server Martin Woodward Teamprise

Source Control BasicsSource Control Basics

Page 8: Source Control with Team Foundation Server Martin Woodward Teamprise

The Problem of File-SharingThe Problem of File-Sharing

RepositoryRepository

AAAA

HarryHarry

AAAA

SallySally

AAAA

Page 9: Source Control with Team Foundation Server Martin Woodward Teamprise

The Problem of File-SharingThe Problem of File-Sharing

RepositoryRepository

AAAA

HarryHarry

A’A’A’A’

SallySally

AAAA

Page 10: Source Control with Team Foundation Server Martin Woodward Teamprise

The Problem of File-SharingThe Problem of File-Sharing

RepositoryRepository

AAAA

HarryHarry

A’A’A’A’

SallySally

A’’A’’A’’A’’

Page 11: Source Control with Team Foundation Server Martin Woodward Teamprise

The Problem of File-SharingThe Problem of File-Sharing

HarryHarry

A’A’A’A’

RepositoryRepository

AAAA

A’A’A’A’

SallySally

A’’A’’A’’A’’

Page 12: Source Control with Team Foundation Server Martin Woodward Teamprise

The Problem of File-SharingThe Problem of File-Sharing

SallySally

A’’A’’A’’A’’

RepositoryRepository

A’A’A’A’

HarryHarry

A’A’A’A’ A’’A’’A’’A’’

Page 13: Source Control with Team Foundation Server Martin Woodward Teamprise

The Problem of File-SharingThe Problem of File-Sharing

RepositoryRepository

A’’A’’A’’A’’

HarryHarry

A’A’A’A’

SallySally

A’’A’’A’’A’’

Page 14: Source Control with Team Foundation Server Martin Woodward Teamprise

Lock, Modify, Unlock ModelLock, Modify, Unlock Model

RepositoryRepository

AAAA

HarryHarry

AAAA

SallySally

AAAA

LockLock

ReadRead

LockLock

Page 15: Source Control with Team Foundation Server Martin Woodward Teamprise

Lock, Modify, Unlock ModelLock, Modify, Unlock Model

RepositoryRepository

AAAA

HarryHarry

A’A’A’A’

SallySally

AAAA

WriteWrite

UnlockUnlock

LockLock

’’

ReadRead

’’’’

Page 16: Source Control with Team Foundation Server Martin Woodward Teamprise

Best PracticeBest Practice

Small frequent check-insSmall frequent check-ins

Do get latest between check-insDo get latest between check-ins

Communicate with the teamCommunicate with the team

Consider continuous integrationConsider continuous integration

Consider branching techniquesConsider branching techniques

Page 17: Source Control with Team Foundation Server Martin Woodward Teamprise

Copy, Modify, Merge ModelCopy, Modify, Merge Model

RepositoryRepository

AAAA

HarryHarry SallySally

AAAA AAAA

ReadRead

Page 18: Source Control with Team Foundation Server Martin Woodward Teamprise

Copy, Modify, Merge ModelCopy, Modify, Merge Model

RepositoryRepository

AAAA

HarryHarry SallySally

AAAA AAAA’’ ’’ ’’

WriteWriteWriteWrite

’’ ’’

Page 19: Source Control with Team Foundation Server Martin Woodward Teamprise

HarryHarry

RepositoryRepository

MergeMerge

Copy, Modify, Merge ModelCopy, Modify, Merge Model

AAAA

SallySally

AAAA AAAA’’ ’’ ’’

’’ ’’

AAAA’’ ’’**

WriteWrite

**

ReadRead

**

Page 20: Source Control with Team Foundation Server Martin Woodward Teamprise

Team Foundation Server ModelTeam Foundation Server Model

Lock types:-Lock types:-NoneNone

Check – outCheck – out

Check – inCheck – in

Page 21: Source Control with Team Foundation Server Martin Woodward Teamprise

TFS Concepts: Team ProjectTFS Concepts: Team Project

““AA collection of work items, collection of work items, code, tests, work products, code, tests, work products, metrics, etc that is used by metrics, etc that is used by a defined team to track a a defined team to track a common set of related common set of related work. work.

Page 22: Source Control with Team Foundation Server Martin Woodward Teamprise

TFS Concepts: WorkspaceTFS Concepts: Workspace

““Your client-side copy of Your client-side copy of the files and folders on the the files and folders on the source control server.”source control server.”

Page 23: Source Control with Team Foundation Server Martin Woodward Teamprise

TFS Concepts: ChangesetTFS Concepts: Changeset

““A logical container in A logical container in which Team Foundation which Team Foundation stores everything related to stores everything related to a single check-in operation”a single check-in operation”

Page 24: Source Control with Team Foundation Server Martin Woodward Teamprise

ShelvingShelving

Put work on holdPut work on hold

Can be thought of as temporary developer Can be thought of as temporary developer branch.branch.

Page 25: Source Control with Team Foundation Server Martin Woodward Teamprise

Basic source control withBasic source control withTeam Foundation ServerTeam Foundation Server

Page 26: Source Control with Team Foundation Server Martin Woodward Teamprise

Key FeaturesKey Features

Atomic Check inAtomic Check in

Integrated with Visual StudioIntegrated with Visual Studio

Eclipse and Cross-platform support Eclipse and Cross-platform support (via partner)(via partner)

Work Item IntegrationWork Item Integration

Customizable Check in BehaviorCustomizable Check in Behavior

WAN SupportWAN Support

Large File Support (>4GB)Large File Support (>4GB)

ShelvingShelving

Page 27: Source Control with Team Foundation Server Martin Woodward Teamprise

Team System VC vs VSSTeam System VC vs VSS

X 6X 6

VSSVSS Team SystemTeam System

1.5 hours1.5 hoursFull GetFull Get 7.5 minutes7.5 minutes

15 minutes15 minutesGet LatestGet Latest 3 seconds3 seconds

3.5 seconds3.5 secondsRight ClickRight Click 0 Seconds0 Seconds

4.5 Seconds4.5 SecondsNavigateNavigate 0 Seconds0 Seconds

X 25X 25X 28X 28ProxyProxy

Page 28: Source Control with Team Foundation Server Martin Woodward Teamprise

Microsoft “Dogfooding”Microsoft “Dogfooding”Version ControlVersion Control

Redmond, WARedmond, WA368 Users368 Users

Fargo, NDFargo, ND4 Users4 Users

Research Research Triangle, NCTriangle, NC42 Users42 Users

Copenhagen, Copenhagen, DenmarkDenmark6 Users6 Users

Hyderabad, IndiaHyderabad, India14 Users14 Users

Version Control Users:Version Control Users: 864 864Number of Files/Folders: 1,507,247/178,953Number of Files/Folders: 1,507,247/178,953Compressed File Size:Compressed File Size: 95.2 GB 95.2 GBWorkspaces:Workspaces: 1,770 1,770Workspace File Versions: 48.9 MillionWorkspace File Versions: 48.9 MillionChangesets:Changesets: 32,573 32,573Pending Changes:Pending Changes: 57,278 57,278Shelvesets:Shelvesets: 2,458 2,458

Source: Source: http://blogs.msdn.com/buckh/archive/2006/03/22/brownbag.aspx

Page 29: Source Control with Team Foundation Server Martin Woodward Teamprise

Capacity PlanningCapacity Planning

Team SizeTeam Size TFS ConfigTFS Config ModelModel CPUCPU MemoryMemory DiskDisk

100100 Single ServerSingle Server Dell PowerEdge 1850Dell PowerEdge 1850 1 x 3.4Ghz1 x 3.4Ghz 1GB1GB 1 x 10k rpm 1 x 10k rpm SCSISCSI

200200 Single ServerSingle Server Dell PowerEdge 1850Dell PowerEdge 1850 1 x 3.4Ghz1 x 3.4Ghz 2GB2GB 1 x 10k rpm 1 x 10k rpm SCSISCSI

400400 Single ServerSingle Server Dell PowerEdge 1850Dell PowerEdge 1850 2 x 3.4Ghz2 x 3.4Ghz 2GB2GB 1 x 10k rpm 1 x 10k rpm SCSISCSI

800800 Dual ServerDual Server HP Proliant DL580 G2HP Proliant DL580 G2 AT: 1 x 2.8GhzAT: 1 x 2.8Ghz

DT: 2 x 2.7GhzDT: 2 x 2.7Ghz

AT: 1GBAT: 1GB

DT: 4GBDT: 4GB

12 x 15k SCSI 12 x 15k SCSI Raid 0Raid 0

20002000 Dual ServerDual Server HP Proliant DL580 G2HP Proliant DL580 G2 AT: 1 x 2.8GhzAT: 1 x 2.8Ghz

DT: 4 x 2.7GhzDT: 4 x 2.7Ghz

AT: 1GBAT: 1GB

DT: 16GBDT: 16GB

12 x 15k SCSI 12 x 15k SCSI Raid 0Raid 0

35003500 Dual ServerDual Server Dell PowerEdge 1850Dell PowerEdge 1850

Unisys ES7000/600Unisys ES7000/600

AT: 2 x 2.8GhzAT: 2 x 2.8Ghz

DT: 8 x 2.8GhzDT: 8 x 2.8Ghz

AT: 4GBAT: 4GB

DT: 32GBDT: 32GB

XIOTech SAN XIOTech SAN (2TB, RAID 10)(2TB, RAID 10)

Source: Source: http://blogs.msdn.com/bharry/archive/2006/01/04/509314.aspxhttp://blogs.msdn.com/bharry/archive/2006/01/04/509314.aspx

Page 30: Source Control with Team Foundation Server Martin Woodward Teamprise

UpdateUpdate

Terminology – CVS / SubversionTerminology – CVS / Subversion

Check OutCheck Out

Page 31: Source Control with Team Foundation Server Martin Woodward Teamprise

Check inCheck in

Terminology – VSS / TFSTerminology – VSS / TFS

Check OutCheck OutGet LatestGet Latest

Page 32: Source Control with Team Foundation Server Martin Woodward Teamprise

Check out != Get LatestCheck out != Get Latest

11

11

Get LatestGet Latest

22 33

Get LatestGet Latest

33

Edit PendingEdit Pendingon Version 3on Version 3

Check inCheck in

44

Page 33: Source Control with Team Foundation Server Martin Woodward Teamprise

Check out != Get LatestCheck out != Get Latest

11

11

Get LatestGet Latest

22 33

Edit PendingEdit Pendingon Version 1on Version 1

AttemptedAttemptedCheck inCheck in

Check inCheck in

44

Get LatestGet Latest

Page 34: Source Control with Team Foundation Server Martin Woodward Teamprise

Branching and MergingBranching and Merging

Source: Source: http://downloads.seapine.com/pub/papers/SCMBranchingModels.pdfhttp://downloads.seapine.com/pub/papers/SCMBranchingModels.pdf

Page 35: Source Control with Team Foundation Server Martin Woodward Teamprise

Recommended File StructureRecommended File Structure

Page 36: Source Control with Team Foundation Server Martin Woodward Teamprise

TFS Branching FeaturesTFS Branching Features

Path-space branchingPath-space branching

Support for merging changesSupport for merging changes

Branch from any point in history Branch from any point in history

Cherry Pick ChangesetsCherry Pick Changesets

Page 37: Source Control with Team Foundation Server Martin Woodward Teamprise

Branching and Shelving withBranching and Shelving withTeam Foundation ServerTeam Foundation Server

Page 38: Source Control with Team Foundation Server Martin Woodward Teamprise

Learning MoreLearning More

Eric Sink’s Source Control HOWTOEric Sink’s Source Control HOWTOhttp://software.ericsink.com/scm/http://software.ericsink.com/scm/Subversion BookSubversion Bookhttp://svnbook.red-bean.comhttp://svnbook.red-bean.comRob Caron’s Blog:Rob Caron’s Blog:http://blogs.msdn.com/robcaronhttp://blogs.msdn.com/robcaronTeam System Rocks:Team System Rocks:http://www.teamsystemrocks.comhttp://www.teamsystemrocks.comMicrosoftMicrosofthttp://www.microsoft.com/teamsystemhttp://www.microsoft.com/teamsystemVSTS Virtual LabVSTS Virtual Labhttp://shrinkster.com/emjhttp://shrinkster.com/emj

Page 39: Source Control with Team Foundation Server Martin Woodward Teamprise

Question and AnswerQuestion and Answer

Martin WoodwardMartin Woodward

Senior Software EngineerSenior Software Engineer

TeampriseTeamprise

[email protected]@teamprise.com

www.teamprise.comwww.teamprise.com

Slides: http://www.woodwardweb.comSlides: http://www.woodwardweb.com

Page 40: Source Control with Team Foundation Server Martin Woodward Teamprise