What's in this chapter?
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 are 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 we will discuss the similarities and differences between centralized and distributed version control systems. We then examine various important version control tools and analyze their strengths and weaknesses. 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 ...