In Detail About Version Control System.

In Detail About Version Control System.

Version Control System

It is a system that records changes to a file or set of files over time so that you can recall specific version later. Using a VCS(Version control system) also generally means that if you screw things up or lose files, you can easily recover. There are three Version Control Systems 1.Local Version Control System 2.Centralized Version Control System 3.Distributed Version control System

Local Version Control System

It is easy to forget which directory you're in and accidentally write to the wrong file or copy over files you don't mean to. To deal with this issue, programmer long ago developed local VCSs that had a simple database that kept all the changes to files under revision control.

image.png one of the most popular VCS tool was a system called RCS.

Now you will get a question that what is RCS🤔? Don't worry when I'm here...!

RCS - Revision Control System.

This manages multiple revision of files. RCS automates the storing, reteieval, logging, identification, and merging of revisions.

Centralized Version Control System

The next major issue that people encounter is that they need to collaborate with developers on other systems. These systems(such as CVS, subversion, and perforce) have a single server that contains all the versioned files, and a number of clients that check out files from that central place.

image.png

This setup offers many advantages, especially over local VCSs. want to give you one example see basically everyone knows to a certain degree what everyone else on the project is doing. Administrators have fine-grained control over who can do what, and it's for easier to administer a CVCs than it is to deal with local databases on every client. However, this setup also has some serious downsides, The most obvious is the single point of failure that the centralized server represents. If that sever goes down for an hour, then during that hour nobody can collaborate at all or save versioned changes to anything they're working on . If the hard disk the central database is on becomes corrupted, and proper backups haven't been kept, you loose absolutely everything. the entire history of the project except whatever single snapshots people happen to have on their local machines. local VCSs suffer from this same problem whenever you have the entire history of the project in a single place, you risk losing everything.

Distributed Version Control System

This is where distributes version control systems step in. In a DVCS(Such as Git, Mercurial, Bazaarnor Darcs), clients don't just check out the latest snapshot of the files; rather, they fully mirror the repository, including its full history. Thus, if any server dies, and these system were collaborating via that sever, any of the client repositories can be copied back up to the server to restore it.

image.png

So you can collaborate with different groups of people in different ways simultaneously within the same project. This allows you to set up several types of workflows That aren't possible in centralized system, such as hierarchical models.

This is very use full to Know before you get into Git and GitHub. Next you will see many blogs as will learn.

Hope You enjoy this blog and you Know This is my First Blog😊. Let me Know your Feedback.