The Basics of Version Control System

Nishantjawla
4 min readMay 25, 2020

--

What Is Version Control?

Version control systems also referred to as revision control is a category of software tools that help a software team manage changes to source code over time. Version control software keeps track of every modification to the code in a special kind of database.

World Before VCS

Previously, programmers while coding would first work on files at their desks and then later merge by the manual method of copying and pasting. This process was time-consuming and problematic.

  • It was problematic to manage all the changes in every file version made by the developer. (The process to manage and maintain older code database was a monotonous task)
  • A specific user couldn’t be assigned to every code and hence the correction process would be a challenge.
  • Errors would also occur during the manual selection of copy and paste.

In addition to the above, there was immense growth in the software development industry and together it added to the increase of individuals working which resulted in the software stacks getting more complicated and difficult to manage. With the expansion people were also spread out at different locations and hence considering all these situations it became essential to come to a solution to develop a new system to address these crises.

Consequently, the Version Control System was the ultimate solution to all the glitches incurred by programmers. It not only helped a team but also individual programmers. Thus, VCS came into being.

Types of Version Control System

There are two types of version control: centralized and distributed.

  1. CVCS — Centralized Version Control System

With centralized version control systems, you have a single “central” copy of your project on a server and commit your changes to this central copy. You pull the files that you need, but you never have a full copy of your project locally. However, there are some downsides to it too. If the central server is down then there is no possibility of access or modifications that can be done. Even, if the server gets corrupted and there isn’t any backup taken then also the data is lost. Some of the most common version control systems are centralized, including Subversion (SVN) and Perforce.

2. DVCS — Distributed Version Control System

With distributed version control systems, we don’t need to store all data on our local repository. Instead, we can clone the remote repository to the local repository that has all the files and have a full snapshot of your project history. However, there is a possibility of having various repositories to merge with different groups of people concurrently within the same project. Git and Mercurial are well-known examples of DVCS.

Benefits of version control systems

Version Control System works as a database of all your code and makes revisions instead of duplicating the files which helps you to save a lot of disk space

It keeps all the history of all the files which gives you full traceability and audibility of the change on what changes were made to which file, when, why, and by whom.

It provides an ability to revert to the last revision or any previous stage as per requirement.

It prevents the risk of losing functioning code or breaking test scripts by overwriting files as you can always take out the last working code at any point in time.

It helps you to identify the difference in any set of files, compare the revisions, and merge the changes as per requirement.

It provides you the facility to have entirely independent code versions if you prefer to keep different development code, once you are ready, you can merge the files to create a final working version.

It provides an ability to work as a distributed team with full collaboration across the globe and saves time and additional efforts for everyone. There is no need to wait for others to complete the work.

Thanks for Reading!

If you like my work and want to support me…

  1. The BEST way to support me is by following me on Medium here.
  2. Be one of the FIRST to follow me on Twitter here. I’ll be posting lots of updates and interesting stuff here!
  3. Also, be one of the FIRST to subscribe to my new YouTube channel here!
  4. Follow me on LinkedIn here.
  5. Check out my website, Coming Soon.

--

--