Chapter 5. Overview of Version Control


  • Understanding the purpose, core concepts, and benefits of version control

  • Analyzing the strengths and weaknesses of common version control products

Version control is the single most important tool you can use when developing software, regardless of the particular provider you use to give you version control functionality. Most software developers use version control tools in their day-to-day jobs, and yet, the fundamental concepts and reasoning behind version control is rarely discussed.

This chapter starts by explaining the fundamental concepts of version control and what functionality you typically find from a tool-independent viewpoint. Then various important version control tools are examined, and their strengths and weaknesses are analyzed. The chapter concludes with a high-level look at the version control capabilities of Team Foundation Server, and looks at when Team Foundation Server is or is not the correct tool for your team.


Version control is known by many names. Source control is frequently used, but the term revision control and even software/source configuration management (SCM) can be used to refer to the same broad set of functionality. Because a modern software project consists of much more than merely a set of source code, the term version control is used throughout this book, although the terms can be used interchangeably (and often are — even in the Team Foundation Server product). ...

Get Professional Team Foundation Server 2010 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.