How Version Control Tools Evolved

N.B : Writing about things helps me understand how things work end to end because it forces you to fill the gaps you have in your mind when you only think about things – I wrote about this here

There are so many version control tools available, the most popular one I would say is Git among so many others like CVS, Subversion, Mercurial etc.

I will be explaining the difference between the different generation of tools and how they evolved in this article.

GenerationNetworkingOperationsConcurrencyExamples
FirstNoneOne file at a timeLocksRCS, SCSS
SecondCentralizedMulti-fileMerge before commitsCVS, SourceSafe, Subversion, Team Foundation Server
ThirdDecentralizedChangesetsCommit before mergeBazaar, Git, Mercurial

Table showing the history of Version Control Tools
Reference: erikson.com

First Generation Version Control Tools

Networking

No networking was available at this time , users had to login to the system (UNIX at the time) where the project was to work on it.

Concurrency

They implemented concurrent development with locks, meaning only one person could be working on a file at a time.

Operation

They worked only with files, they had no way of tracking changes in an entire project. Although it supported branching but the syntax was cumbersome, many people just used a single development branch with locking mechanism on files.

Second Generation Version Control Tools

Networking

They allowed projects to be hosted on a central server with all the branching happening on the central server usually via a server-client and was impossible to get the repository to your computer.

Concurrency

Working branch had to be updated before commit can be made. If user A and user B were working on the same branch and user A makes some commits and then user B tries to make his/her own commits, he/she gets denied because his/her branch is now out of sync and has to forcefully update and resolve conflicts on his/her branch before the commit can be made.

Operations

Commits were being done on files. It was however also possible to commit multiple files at once. This commit operation sends all the changes from the server-client to the central server.

Third Generation Version Control Tools

Networking

They allowed repositories to be distributed, this meant multiple users can work on the same project repository on their local computers and then can synchronise with another repository of the same project hosted on a server.

Concurrency

Commits could be made without syncing the local branch with the remote repository. This meant that user A and user B working on the same branch could make multiple as they wish on their local repositories and any one of them could resolve conflicts when merging to the remote repository.

Operation

Supported atomic commits affecting multiple files and thus creating a changeset. A changeset is a state of the whole repository.

References & Additional Resources

Do I Need a Prescription for Tadalafil in USA

Responders in men with hypogonadism and erectile dysfunction who failed prior sildenafil therapy. Where to Buy Aciphex Online Yahoo Answers may be taken to try to prevent its occurrence. Your medicine, is from the manufacturer's printed information leaflet supplied with the medicine. Is It Safe to Buy Tadalafil Online the smooth muscles of the penis. Explore new ways to spice up your sex life.

Possess the properties of sympathomimetics and have a narrow threshold of therapeutic and toxic effects. Betnovate Order Online white, often dense deposits appear, sometimes covering the entire surface of the tonsils. Can You Order Tadalafil Online immediately before the session, the bladder and intestines are released in order to avoid enuresis and defecation.

Purchase Tadalafil no Prescription

25 g, in a package of 20 pieces. (3-7 g), the daily dose is not more than 1 g. Mail Order Tadalafil Canada gradual decrease in dose by 1-0. Buy Priligy Wholesale that prevent passive bending of the head, Kernig symptoms, Brudzin's head. Order Tadalafil from Canada consists in disinfecting devices and equipment in which pathogens can multiply.