Source Control with Team Foundation Server Martin Woodward Teamprise.
-
Upload
hortense-hines -
Category
Documents
-
view
216 -
download
1
Transcript of 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
Visual Studio Team SystemVisual Studio Team System
Team Foundation ServerTeam Foundation Server
Work Item Tracking
Change Management Reporting
Project Site
Version ControlSource Control
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
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
Source Control BasicsSource Control Basics
The Problem of File-SharingThe Problem of File-Sharing
RepositoryRepository
AAAA
HarryHarry
AAAA
SallySally
AAAA
The Problem of File-SharingThe Problem of File-Sharing
RepositoryRepository
AAAA
HarryHarry
A’A’A’A’
SallySally
AAAA
The Problem of File-SharingThe Problem of File-Sharing
RepositoryRepository
AAAA
HarryHarry
A’A’A’A’
SallySally
A’’A’’A’’A’’
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’’
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’’
The Problem of File-SharingThe Problem of File-Sharing
RepositoryRepository
A’’A’’A’’A’’
HarryHarry
A’A’A’A’
SallySally
A’’A’’A’’A’’
Lock, Modify, Unlock ModelLock, Modify, Unlock Model
RepositoryRepository
AAAA
HarryHarry
AAAA
SallySally
AAAA
LockLock
ReadRead
LockLock
Lock, Modify, Unlock ModelLock, Modify, Unlock Model
RepositoryRepository
AAAA
HarryHarry
A’A’A’A’
SallySally
AAAA
WriteWrite
UnlockUnlock
LockLock
’’
ReadRead
’’’’
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
Copy, Modify, Merge ModelCopy, Modify, Merge Model
RepositoryRepository
AAAA
HarryHarry SallySally
AAAA AAAA
ReadRead
Copy, Modify, Merge ModelCopy, Modify, Merge Model
RepositoryRepository
AAAA
HarryHarry SallySally
AAAA AAAA’’ ’’ ’’
WriteWriteWriteWrite
’’ ’’
HarryHarry
RepositoryRepository
MergeMerge
Copy, Modify, Merge ModelCopy, Modify, Merge Model
AAAA
SallySally
AAAA AAAA’’ ’’ ’’
’’ ’’
AAAA’’ ’’**
WriteWrite
**
ReadRead
**
Team Foundation Server ModelTeam Foundation Server Model
Lock types:-Lock types:-NoneNone
Check – outCheck – out
Check – inCheck – in
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.
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.”
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”
ShelvingShelving
Put work on holdPut work on hold
Can be thought of as temporary developer Can be thought of as temporary developer branch.branch.
Basic source control withBasic source control withTeam Foundation ServerTeam Foundation Server
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
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
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
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
UpdateUpdate
Terminology – CVS / SubversionTerminology – CVS / Subversion
Check OutCheck Out
Check inCheck in
Terminology – VSS / TFSTerminology – VSS / TFS
Check OutCheck OutGet LatestGet Latest
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
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
Branching and MergingBranching and Merging
Source: Source: http://downloads.seapine.com/pub/papers/SCMBranchingModels.pdfhttp://downloads.seapine.com/pub/papers/SCMBranchingModels.pdf
Recommended File StructureRecommended File Structure
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
Branching and Shelving withBranching and Shelving withTeam Foundation ServerTeam Foundation Server
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
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