Version control systems (“VCS”, also referred to as source control management or revision control) are a type of software application that are integral to the success of your software development project.

Version control systems provide a standardized way to store your source code, facilitate collaboration between teammates, and most importantly, maintain a historical record of all of the changes that have been made to your source code over time. So what version control system you should use for your project is a common question.

We’ll break down the two main types of version control systems. Once you’ve decided if you prefer a distributed or a centralized architecture, we invite you to check out our practical guide on How to Choose the Right Version Control System for your team.

Benefits of using version control

  1. Protect your software application by storing your source code in a secure way.
  2. Facilitate collaboration between software developers.
  3. Provide visibility, traceability, and audibility.

Types of version control systems

The best version control system varies according to the software team’s preferences and workflows. Depending on their project, they might choose one version control system over another.

There are two types of version control systems: distributed and centralized version control systems, with different implications in day to day work and operations.

Distributed version control systems: Git

Distributed VCS systems (“DVCS”), like Git, are the predominant VCS of choice in the United States. DVCS allows you to “clone” a full copy of the source code repository to your local machine before making changes. Changes are often made to many files under a particular “branch” made within the local copy before creating a “pull request” to “merge” changes back into the original repository.

Centralized version control systems: SVN and Perforce

Just because Git is the predominant choice, it doesn’t mean it is the best version control system for your team. Centralized version control systems are often better suited for projects that involve large repositories, legacy applications, binary files like design files, art assets (often used in game development), or other documents that cannot be handled in DCVS tools.

In this case, your team may benefit from centralized version control systems such as SVN or Perforce. (And yes, SVN is still used.) These centralized version control systems treat the “central repository” as the source of truth, and typical workflows usually involve three steps:

  1. “Check out” the latest version of code from the central repository to your local machine. (Often, teams will use “file-locking” features to lock files in the central repository so that you can warn other teammates that you are currently making changes to that file and prevent them from attempting to make simultaneous edits to the same file.)
  2. Make changes to the file(s) you checked out on your local machine.
  3. Commit your work to the central repository with a commit message describing your updates.

How to Choose the Best Version Control System for your Team: free practical guide

Each version control type provides unique advantages, depending on your team’s previous experience, certain characteristics of your software, and the history of your project.

We put together a practical guide on how to choose the right Version Control System to help you determine the right version control for your project, focusing on the three most popular version control systems — Git, SVN, and Perforce.

In the guide, we take into consideration the four key criteria you need to consider to choose the absolute best version control system for your team: collaboration and ease of use, security, file type and data size, and your own software team’s expertise and bandwidth to handle and maintain the repository.