History of Version Control in Programming

The First Version Control Systems

The first version control system was created in 1972 by Bell Labs where Unix was developed. This alpha version control was named "SCCS - Source code control system" and was only available for Unix and only worked with source code files. After a decade, in 1982, "RCS - Revision control system" was introduced and included cross-platform functionality. However, this version control system was also only for text files. Both of these version control systems worked for a single user and couldn't be used for sharing code. In 1986, a centralized version control system was introduced. This was called the "Concurrent version control - CVS". This was a breakthrough in version control systems because this entry had a central repository and could be used by multiple developers. It still lacked one key feature of a good version control: keeping track of changes made in directory trees. It instead focused on changes made in individual files and kept track accordingly. A little while after CVS was launched, perforce took its place as the most used version control system in the dot com era in 1995. It is still considered to be the biggest repository inside Google. 

What else can we version control? 😏

So far only text based version control systems dominated the collaboration ecosystem. In 2000, a new version control system called "subversion" was introduced. Subversion could deal with non-text files. It could also track changes in directories such as renames and file-moves. Subversion's transaction unit was the directory as opposed to individual files as its predecessors. This allowed checkins and checkouts to be made for entire directory trees. 

By now, around 2004, Microsoft thought about updating its version control systems as well. Microsoft therefore replaced its aging "Visual source safe" version control system with "Microsoft Team Foundation Server". Team foundation server came with a Microsoft Developer Network (MSDN) subscription in 2010 making it fairly expensive compared to other version control systems in the market. Team Foundation Server also has a tight Visual Studio integration which allows checkins and checkouts to be made right from inside Visual Studio. Apart from source code control, TFS manages bug and work-item tracking and features for doing automated testing. 

The Next Gen

BitKeeper had a product used by Linus Torvalds and a Kernel group on Linux that was called the community edition and was free. In 2005, Bitkeeper decided to go commercial with its products meaning users would pay a fee to use their products. Linus Torvalds didn't like the idea so he created the infamous "Git". This was the first distributed version control system and would turn out to be the most used system. Another distributed version control system: "Mercurial" was also created as a result of BitKeeper's commercialization and is also widely used in source code distribution and version control. Distributed version control systems enters the market. This differs from its predecessors mainly in terms of how it manages repositories and central servers. Every developer using this version control system shares their own individual repository and can then share their changes with the central server or individual users as they see fit. 

This concludes a short history of version control from its beginning days to around 2012. Nowadays, git is most commonly used for distributed version control and TFS seems to be the choice for single user version control. 

Comments

Popular posts from this blog

Make way for GPLV3

When a code rot can be the difference between life and death.

Privacy and Personal Data