6.2. Picking the Right SCCS

There are a number of things to consider when picking a version control system for your team, and each one of them should be carefully weighed. Almost any system will give you basic SCC functionality such as version history, merging and branching, and some limited reporting. Many systems have much more advanced features such as custom reporting and statistics, integration with other tools such as defect tracking, and the ability to replicate source code repositories across widely distributed sites over the WAN.

Before choosing an SCC platform, decide how many people you need to support working concurrently, what level of reporting you want, which locking model will work best for you, and whether or not the SCC system needs to be part of a Continuous Integration process or integrate with other tools as part of your development process. Are there rules that you want to apply to source control, such as "no empty comments" or "no code without unit tests"? How will you enforce those rules? Through tools, or process? How much money do you have to spend? Do you have someone dedicated to administering a source control system? These are all factors to take into account before settling on a platform.

6.2.1. Performance and Scalability

How many developers will be using the same SCC system, and how many of those will be working on the same project? Different SCC systems use different storage mechanisms and transport protocols, and those methods may have an impact ...

Get Code Leader: Using People, Tools, and Processes to Build Successful Software 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.