top of page
Writer's picturevP

What is Version Control?

In the previous post, we discussed about how IaC Works. In this post, lets discuss more about one of the important element in IaC which is Version Control. Before we get into Version Control details, let's understand it's relevance and why it is required.


Assume there is an XYZ Organization that has offices all around the globe and a team is working on a specific project. In a normal scenario a team faces multiple obstacles while working on a project. The major challenge is collaboration when a team is spread across the globe. Another challenge is that the project is completed into several versions and in such a situation keeping all such a commits in a single place is a considerable challenge. Sometimes, there is a need to revert back to the previous version because of the issues in the current version or to find the root cause. Sometimes its critical to know what changes were made in the previous version or where exactly the changes were made in a file.


The solution to above challenges lies in version control. The version control makes it possible for an organization to collaborate between it's employees and help in having backups on the remote repository. The system will make it possible for the developers to go back to the previous commits if needed. Version control facilitates coordination, sharing, and collaboration across the entire software development team. It enables teams to work in distributed and asynchronous environments, manage changes and versions of code and artifacts, and resolve any related anomalies.


Version control also known as source control is the practice of tracking and managing changes in the software code. Version control software helps in recording the changes made to the files by keeping the track of modifications done to the code over time. Version control systems are specially useful for DevOps teams since they help them to reduce the development time and increase successful deployment.


Benefits of version control system -

Using version control software is a best practice for high performing software and DevOps teams because of the numerous benefits it offers. Some of them are listed below -


1. Keeping track of all the modifications made to the code.

2. Enhances the project development speed by providing efficient collaboration

3. Managing and protecting the source code

4. Comparing earlier versions of the code

5. Supports the developers workflow and not any rigid way of working

6. It help software teams to work faster and smarter.

7. Helps in recovery in case of any disaster or contingent situation.

8. Informs us about Who, What, When, Why changes have been made.


Types of Version Control System -

There are 3 broad categories of Version Control System as below -


1. Local Version Control Systems

It is one of the simplest forms of VCS and has a database that keeps all the changes to files under revision control. RCS is one of the most common VCS tools.


2. Centralized Version Control Systems

Centralized version control systems contain just one repository and each user gets their own working copy. You need to commit to reflecting your changes in the repository. It is possible for others to see your changes by updating. The major benefit of Centralized Version Control is that it makes collaboration amongst developers along with providing an insight to a certain extent on what everyone else is doing on the project.

Centralized Version Control

3. Distributed Version Control Systems

Distributed version control systems contain multiple repositories. Each user has their own repository and working copy. Just committing your changes will not give others access to your changes. This is because commit will reflect those changes in your local repository and you need to push them in order to make them visible on the central repository. Similarly, When you update, you do not get other’s changes unless you have first pulled those changes into your repository.

Distributed Version Control

Git, Mercurial are examples of some of the popular distributed version control systems. They help us overcome the problem of single point of failure present in Centralized Version Control.


Finally, let's have a look at some of the best Version Control Systems


I hope you would have understood the concept of Version Control System and it's benefits.


Thank you for reading!


*** Explore | Share | Grow ***

19 views0 comments

Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
bottom of page