How many types of version control system

Thanh Tran
Jan 9 · 3 min read

Version Control is very important to make sure any change in the source code should be recorded and allow us to recall a specific version later. Imagine we edit some lines of code then deploy it without full-test then the error occurs due to the changes, unfortunately, we forgot to make a backup of the old code. Now how do we can revert to the previous version? In order to avoid these problems, we need a version control system to record and keep track of all changes in our code.

A version control system allows us to revert a selected file back to a previous version or revert the entire project. It also allows us to see who last modified and so on.

There are three common types of version control system we should know about:

  • Local Version Control System
  • Centralized Version Control System
  • Distributed Version Control System

Local Version Control System

Many people always control the change for each file by making a copy of the file with a new name, especially for non-tech people. This approach is widespread because it is so simple, but it also has some backward such as error-prone, hard to remember all the path and the name of files. This approach keeps all changes in a single local computer so all the files might be lost if the disk broke and can not recover. A software call RCS is popular software that applies this approach.

The Revision Control System (RCS) manages multiple revisions of files. RCS automates the storing, retrieval, logging, identification, and merging of revisions. RCS is useful for text that is revised frequently, including source code, programs, documentation, graphics, papers, and form letters.

sources: https://www.gnu.org/software/rcs/

Centralized Version Control System

With Local Version Control, we are very hard to collaborate with others to allow the collaboration, centralized version system was born.

In basic, we have a central VCS server to store all changes so anyone who has privileges can commit their change to the central server or pull other’s changes to their local computer.

Centralized Version Control Systems
Centralized Version Control Systems

However, this approach also has some serious downsides. The most obvious is the single point of failure that the centralized server represents. If the central server is unavailable for an hour, then during that hour nobody can collaborate at all or save versioned changes to anything they’re working on.

CVS, Subversion, and Perforce are relying on this approach.

Distributed Version Control System

To avoid the downsides of the Central Version Control System, the Distributed Version Control system steps in. In this approach, each client plays the role of mirror repository, including its full history since versioned. If the remote server crash, we able to restore from client’s local repository.

Distributed Version Control Systems
Distributed Version Control Systems

Reference

I write this articel following a book tittled ProGit

ProGit books: https://git-scm.com/book/en/v2

Programming Sharing

We write about programming. We share about programming.

Sign up for Programming Sharings Newsletter

By Programming Sharing

Get new articles update by signing up our newsletter Take a look.

By signing up, you will create a Medium account if you don’t already have one. Review our Privacy Policy for more information about our privacy practices.

Check your inbox
Medium sent you an email at to complete your subscription.

Thanh Tran

Written by

Software Engineer at Terralogic. Blogger and Amateur Investor

Programming Sharing

The publication to share programming knowledge

Thanh Tran

Written by

Software Engineer at Terralogic. Blogger and Amateur Investor

Programming Sharing

The publication to share programming knowledge

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store