Presentation materials from the 6/25/2014 Chicago ALM User Group meeting - Git and Visual Studio Integration.
Git, Visual Studio, Team Foundation Server
4. Agenda
Centralized vs. Distributed Version Control
Key Differences between TFVC and Git
Demo
Key TFS Integration Differences – TFVC vs. Git
Considerations for Deciding between TFVC and Git
Wrap up
5. TFVC - Centralized Version Control
One central code repository
Requires a connection to perform most operations
Can pull down just the files you need
6. Git – Distributed Version Control
No central code repository
“master” repository is defined by convention
Does not require a connection to perform most
operations
Can only pull down an entire repository
7. TFVC - Centralized Version Control
Source: ALM Rangers Version Control Guide
http://vsarbranchingguide.codeplex.com/
8. Git – Distributed Version Control
Source: ALM Rangers Version Control Guide
http://vsarbranchingguide.codeplex.com/
10. Key TFS Integration Differences – TFVC vs. Git
Area TFVC Git
Team Project Mapping Single repository but you can map sub
folders to your workspace
You can perform a Get Latest from any
sub folder
Multiple repositories but you must get
the entire repository
Viewing Source Code Source Control Explorer in Visual Studio Windows File Explorer
File History Not replicated to the client machine Replicated to the client machine
Updating history You can change the comments of a
previous changeset, but you cannot
change a changeset’s contents
You can amend the latest local commit
11. Key TFS Integration Differences – TFVC vs. Git
Area TFVC Git
Work Suspension Supported by Shelvesets and
Suspend/Resume
Create a local branch or stash (from the
command line)
Security Many different permissions can be set on
any branch, folder or file
Limited number of permissions, the most
granular permissions you can apply are
to a repository or a branch
Code Reviews Code Review work flow built in Pull Requests are new to VSO, not yet
available for on premises TFS
Check-in Policies Extendible model for check-in policies No support for check-in policies
Build Differences Supports Gated Check-ins Does not yet support Gated Check-ins
13. Considerations for Deciding between TFVC and Git
Source: ALM Rangers Version Control Guide
http://vsarbranchingguide.codeplex.com/
14. Additional Resources
• Microsoft Developer Network (MSDN)
• Use Visual Studio with Git
• Which version control system should I use: TFVC or Git?
• Details on the differences between TFVC and Git
• Work from the Git command prompt
• TFS Internals: How does TFS store Git files
15. Additional Resources
• Git’s home on the internet
• Online reference for all git commands
• Online book “Pro Git”
• Tool to learn all about how Git works
• Try git in your browser, with step-by-step instructions
• Tons of tips and tricks for Git users of all experience levels
• Pluralsight
Git Fundamentals
Git for Visual Studio Developers
InCycle has been helping organization improving their ALM practices since 2002. We offer services and solutions around Microsoft ALM toolset and are an ALM gold partner with 6 locations in NA with dedicated consultants (3 being MVP). We, (I) ‘ve been involved with MS ALM solution since the beginning (VSTS 2005).
(Click)
In centralized VC, there’s a central server that contains all of the source code and metadata. This is the One True Version of the code; all source control actions occur against this central repository.
Of course, doing this requires a network connection to the server.
The upside here is that you don’t need to pull down the entire set of files in order to make a change; you can get just what you need, on an on-demand basis
TFS source control and Subversion are examples of CVCS.
All changes are made to the Local Repository and then pushed or synced to other repositories.
The Local repository contains the entire history
In centralized VC, there’s a central server that contains all of the source code and metadata. This is the One True Version of the code; all source control actions occur against this central repository.
Of course, doing this requires a network connection to the server.
The upside here is that you don’t need to pull down the entire set of files in order to make a change; you can get just what you need, on an on-demand basis
TFS source control and Subversion are examples of CVCS.
All changes are made to the Local Repository and then pushed or synced to other repositories.
The Local repository contains the entire history