Today, we will discuss on the version control system.
What is it?
What are the types of version control?
Why we need this?
There are lots of question comes in your mind to know about version control quickly. But when you know things quickly, you will also forget quickly. So start one by one in sequence to get deep dive into the Version control system.
What is Version Control System?
In a simple language, Version Control is a system which stores information about file changes and maintains it by giving a number of version of the file.
For example; If you create a file and storing into version control system you will get some number on file it can be start from 0.1, and when you are modifying any content on file or appending or removing content from the file and save it you will get another version number of file like 0.2. So now you have two version number of file 0.1 and 0.2 where 0.1 having data when you saved file at the beginning and 0.2 having data after modifying the content, now you can access both versions of the file as per your need and make changes on it with a newer version.
If you are into IT, you should know about the version control system. Nowadays all IT companies are using it for source code version control, where they are storing application source code with version control to track which version of the application has what features.
But the version control is not for the source code only you can use it for any digital files and data.
For example, a designer can use it for a picture, graphics, etc., a writer can use it for story writing files; a filmmaker can use it for video files. So it can use by anyone if their data is in digital format.
There are some popular VCS (Version Control System)-
• RCS – Revision Control System
• CVS – Concurrent Versions System
• Apache Subversion
• Monotone, etc.
Now you know about the version control system, lets come into the next topic, “Types of Version Control.”
Types of Version Control
When we talk about version control types, there are three types of Version Control Systems
1. Local Version Control Systems
2. Centralized Version Control Systems
3. Distributed Version Control Systems
Local Version Control System
A local version control system is use into the local system. One of the most popular version control tools is RCS (Revision Control System).
RCS is an excellent example of the Local Version Control tool.
RCS keeping patch sets (differences between files) in a unique format on your disk, it can re-create what any file looked like at any point of time by adding up all the patches.
Centralized Version Control System
Suppose you have two developers are working on the same project, how will you manage code version control?
In this case, to manage source code using the Local version control system is very difficult on both systems having the same version of the code with different features or set of codes.
To recover from this problem, we have a centralized version control system (CVCS).
In CVCS, we use a system for version control system where managing source code and connect with the different developer’s system so they can access the same set of code always.
The best example of CVCS is SVN.
Distributed Version Control Systems
Distributed version control system (DVCS) comes after a centralized system which helps to work with multiple geographical groups to work into the same project.
In DVCS, you can manage your files with different groups of people in different ways in the same project. It is also allowing you to build different types of workflows which are not possible in centralized systems, like hierarchical models, etc.
The best examples of DVCS are git, Mercurial, Darcs, and Bazaar, etc.