WHAT'S IN THIS CHAPTER?
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). ...