Bluetrain’s Go-To List of Source Code Management (SCM) Tools

Whether you call it a source code management tool, a version control system, or even a revision control system, serious software development requires a tool to help manage code libraries and the versions or changes to the code in those libraries. The purpose of this post, similar to our “Great Big List of Responsive Frameworks (and Responsive Boilerplates)” post), is to simply make you aware of some of the options available to you to help you manage your code…

Bazaar is an open source distributed version control system similar to Git and Mercurial (listed later in this document). Bazaar is very open about why they think they are better than Git (but admit to being biased – see Bazaar vs. Git). Bazaar is free software sponsored by Canonical, the same folks who bring us Ubuntu.

Open Source CVS, or the Concurrent Versions System, is the granddaddy of version control systems. While still widely installed, its functionality has been eclipsed by newer systems such as SVN. Popular clients for CVS include Tortoise CVS (for Windows), Xcode (for Mac), and Eclipse (for Linux and Windows). CVS is a centralized version control system in that it has a centralized code base.

Very rapidly growing in popularity, Git is an open source distributed version control system. It can be used with code hosting / collaboration systems such as GitHub and Bitbucket. It is used by projects such as Linux Kernel and Fedora.

Mercurial is another open source distributed version control system. It is fast and scalable and was designed for large projects. Many GUI Tools can be used with Mercurial.

Perforce is a proprietary version management system. It supports Git clients as well as clients that use their own protocol. Perforce is massively scalable and is used for extremely large projects.

SVN / Apache Subversion
“Officially” Apache Subversion, Subversion is a project of the Apache Software Foundation and is an open source version control system. Subversion works with a number of clients including Tortoise SVN (for Windows), Versions (for Mac), and Xcode (for Mac), to name a few. There are also Subversion clients for Linux. Wikipedia actually has a pretty good Comparison of Subversion Clients.

Subversion is very popular and is one of the most widely used SCM tools. It is also a centralized version control system.

Visual Source Safe
Visual SourceSafe from Microsoft is a software source control system for software development projects using Microsoft Visual Studio .NET.

If you have a favorite SCM tool that we did not cover please let us know.