May 27, 2011, 4:44 p.m.
posted by geist
The Basics of Team Foundation Source Control
The source control system that ships as a part of VSTS and Team Foundation Server is a brand-new system from Microsoft; it is not an enhanced version of Microsoft's previous source control system, Visual Source Safe. Team Foundation Source Control (TFSC) was built from the ground up to be an enterprise-class system capable of handling hundreds or even thousands of concurrent users.
Visual Source Safe (VSS) has not, in fact, gone away. A new version, VSS 2005, was produced in conjunction with Visual Studio 2005, and it remains the preferred source control mechanism for individual developers or small teams (those with five or fewer members).
TFSC was built around some fundamental design goals:
From a high level, the following sections cover the basics of the Team Foundation source control system before moving on to more in-depth topics around actually interacting with the system.
Because the Team Foundation source control system is merely another service provided by TFS, it rides on top of the same three-tier architecture. It relies on SQL Server as the database to house the source control repository, exposes access to the repository through a set of services hosted on a TFS application tier server, and leverages Visual Studio as the client. Figure shows a diagram depicting this system architecture.
1. The Team Foundation source control system.
In support of its design goals, this architecture allows the TFS source control system to scale up by adding additional servers on the application tier. In addition, storage space can be increased by adding additional storage devices to the database server or adding additional database servers.
For geographically dispersed teams, Team Foundation supports the ability to use proxy servers to cache source control data on servers that are local to a particular team segment. Proxy server settings are controlled via the Team Foundation Settings dialog box and are handled by the Team Foundation administrators. For more details on how to configure proxy servers to increase performance, see the MSDN documentation and search for the phrase "How to: Configure Team Foundation Source Control to Use Proxy Server."
Security Rights and Permissions
TFSC uses the same Windows integrated security system as the application tier Team Foundation Server that it is hosted on. This means that the same user/group model is used to determine permission levels specific to source control operations and that the same process for adding and removing users is used. In other words, TFSC does not maintain its own specific user base or security system; it participates in the larger Team Foundation Server infrastructure. In general, a user will play either a contributor or an administrator role in the source control system.
The contributor group is usually filled by team members in the developer, tester, sponsor, or other role. These individuals will interact with the source control system to perform a basic set of common tasks: checking out files for modification, checking in changes made to a file, viewing a file in the repository, and adding or deleting files to the repository.
Administrators, as the name implies, are more focused on maintaining the source control server as a whole. Administrators manage access to the source repository and are tasked with maintaining the integrity and security of any items in the repository. Administrators may also have project-specific tasks such as determining when a new branch should be created in the project tree and handling merges between branches. Membership in this group is typically limited to the global TFS administrators and team roles such as project manager or project lead.
At the permission level, TFSC supports a variety of granular rights that can be assigned or denied to an individual user or a group of users. The specific permissions/rights supported by TFSC are documented in Figure.
Armed with this basic understanding of the Team Foundation source control system, you're ready to look at the tooling integrated into Visual Studio that allows VS users to perform basic and advanced source control tasks.