The Basics of Team Foundation Source Control

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:

  • To provide a scalable solution for enterprise-class development teams

  • To provide a reliable solution

  • To allow the system to be accessed remotely using the HTTP/HTTPS web protocols

  • To allow more than one developer at a time to work on a source file

  • To provide a completely integrated user experience from within Visual Studio

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.

Basic Architecture

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.

Team Foundation Source Control Permissions

File/Folder Permissions




User can set permission levels for users/groups.


User can check in a file to the source control repository.


User can check in another user's file to the source control repository.


User can label an item.


User can label another user's item.


User can lock an item.


User is able to check out, add, delete, branch, merge, or undelete.


User can read the contents of a file or folder.


User can change another user's changeset comments or check-in notes.


User can undo another user's pending changes.


User can remove a lock that another user has placed on an item.

Global Permissions


User can function as an administrator and change the basic source control settings.


User can stop any in-progress source control action.


User can delete another user's shelveset.


User can edit another user's workspace.


User can create a workspace.


User can access the source control system (this is the base-level permission required to use any portion of the TFSC system).

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.

 Python   SQL   Java   php   Perl 
 game development   web development   internet   *nix   graphics   hardware 
 telecommunications   C++ 
 Flash   Active Directory   Windows