If you are a developer or a tester, you are basically living in source code. When you have more than one person working on a project, versioning becomes an issue. If two developers work on the same assembly, how do you merge their code together? How do you prevent accidentally overwriting files? Incredibly, many of the organizations I've consulted for still use file shares to store source code. I've seen others push Microsoft Visual SourceSafe to the limit with 150 active users or more. Others use third-party solutions or open source solutions that integrate poorly with Visual Studio.
One of the key features of Team Foundation Server is its version control management system (formerly code-named "Hatteras"). It includes a number of features, including the capability to branch, merge, and shelve your source code, atomic check-ins, policies, security — all the features you would expect from an enterprise version control solution. The core engine for this tool is Microsoft SQL Server 2005. As such, the performance of Team Foundation version control will greatly depend on your server's hardware and the size of your SQL Server 2005 database.
You'll notice that the title of the feature is Team Foundation version control. However, when you start using the feature, a lot of the tools and windows will say "source control" such as the "Source Control Explorer." The version control title is there to indicate to you that the product can handle much more than source code. You can upload manual tests, work products, build files — anything you want, really.
Once you install Team Explorer alongside Visual Studio 2005, you will get access to a nicely integrated Source Control Explorer. You can also manipulate the source control system using the Team Foundation command-line client called tf.exe. In this chapter, you will learn how to effectively use both tools.
The version control system is named after the Cape Hatteras Lighthouse on Hatteras Island, situated on the Outer Banks of North Carolina. The lighthouse has the reputation of being one of the tallest in North America. Hatteras is near Ocracoke Island, which coincidentally happens to be the code name for the Team System Web Testing Tools.
In this chapter, you will learn about features such as branching and merging, how to check in and check out code, setting check-in policies, and temporarily shelving your code for easy access at a later date. The Team Foundation version control system also supports a number of other features, such as atomic check-ins, workplaces, and changesets. Using Team Foundation proxy server, you can also scale out your source control system to distributed teams.
One of the common misconceptions about Team Foundation Source Control is that it is a new version of Microsoft Visual SourceSafe. This is completely untrue — Team Foundation Source Control has been written from scratch just for Team System; and unlike SourceSafe, it has been designed to scale well to a large number of developers (more than 2000). They are completely different products.