11.0 Introduction

Source control is a critical part of any software development effort. Source-control systems, also referred to as version-control systems, give you a central repository where your source code is stored. Your team pulls working copies of the source code from the repository and develops using local copies of what’s in the repository.

You could do all your team’s development by simple file sharing, but it would be nearly impossible to keep track of who is working on which file. The last thing you want to deal with after spending hours perfecting a piece of code is having your code overwritten by another developer, who just happens to save the same file without realizing that you’ve made changes to it.

Version-control systems are essential for teams collaborating on the same code base, and even if you’re the only developer, such systems still provide a great way to keep track of changes to your code. Version-control systems help mitigate the previously described concurrency problem, and they provide a complete history of revisions made to each source-code file. If you’re part of a team, a version-control system lets your team members work in parallel and enables you to go back and see what’s been done to each file and by whom.

Tip

Version-control systems aren’t the same thing as software configuration management (SCM) systems. SCM systems have features specific to software development tasks and generally manage trees of source control—but possibly not anything else. Version-control ...

Get Windows Developer Power Tools 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.