Wednesday, 3 October 2018

Git: Essence of Distributed Version Control System

To understand Git we must understand the need of Git , as we know Git is a popular version control system, But what is Version control system?

Version Control System is like audit log of your changes, changes that has been made to your system. System can be a set of files, any type of project or both. So in general, version control system records changes in order to serve us better in future. For example, it helps you to track the bugs, who report it who solve it and what was the solution by comparing one version back. In addition to this, Version Control System (VCS) allows you to revert the changes back to normal state if you have messed up with a little overhead.

So, the version control system allows you to do these things and more in an efficient manner and the VCS can be used with small or large projects depend upon the nature of the project.
In the past, programmers do it by maintaing local version control, creating version database to a file.
However, the urge of centralised version control system arose due to this because the changes need to be shared among developers. Therefore, systems such as CVS, SVN and Perforce came into existence and widely accepted and used for a long period of time. The unanimous feature that these system offer is a central server which maintains the recording and versioning of the files and the users can access them at a time. Others appealing features was the openess of the changement, which let others know who is doing what, administrators have fine control over roles of developers.



The downsides of Central VCS Server are obvoius, if the central server face some technical issues everybody will be halted from collaboration during the outage. Furthermore, if more developers are collaborating the server it becomes slow and sometimes unresponsive. What worse if the hardisk becomes corrupted and proper backups have not been kept, you lose everything.
This is where the Distributed Version Control System come into the picture. In a DVCS such as Git, Darcs, Mercurial. Developers/Users have their own copy of the files, in this way if the server dies one can put his copy into the place and stand the server up again. Every clone is full backup of data.


References: http://sens.tistory.com/246

No comments:

Post a Comment