Version Control

Version control is a system that records changes to files over time. Software developers use version control software to maintain current and historical versions of files such as source code, web pages, and documentation. With version control a versioned file can be restored to a previous state.


Git is a free and open source distributed version control system – which just means that when you do a git clone (+url of your repository) what you are actually getting is a complete copy of your entire history of that project. This means all your commits! Woot!

Git has a staging area. This just means that if you made 100 new changes to your code, you can break these 100 changes into 10 or 20 or more commits each with their own comments and their own detailed explanation of what just happened!

Git may have more difficulty compressing and storing binary files.

Some claim Git is better than SVN because it works well even for developers who aren’t always connected to the master repository, as it is available offline.

Branching and merging support are also thought to be superior with Git.

Get more info at the GIT page.


Apache Subversion (SVN) is a software versioning and revision control system distributed as open source under the Apache License. SVN has one central repository – which makes it easier for managers to have more of a top down approach to control, security, permissions, mirrors and dumps. Additionally, many say SVN is easier to use than Git. For example, it is easier to create a new feature. With Git, it takes an extra step to create a new feature. Others say that the way SVN is set up results in greater trunk stability, and having everything on a central server feels more controlled and secure for some.

Get more info at the SVN page.


Concurrent Versions System (CVS), also known as the Concurrent Versioning System is a revision control system originally developed by Dick Grune in July 1986. CVS operates as a front end to RCS, an earlier system which operates on single files. It expands upon RCS by adding support for repository-level change tracking, and a client-server model.


Revision Control System (RCS) is an early version control system released in 1982 by Walter F. Tichy at Purdue University. It is a set of UNIX commands that allow multiple users to develop and maintain program code or documents. With RCS, users can make their own revisions of a document, commit changes, and merge them. RCS was originally developed for programs but is also useful for text documents or configuration files that are frequently revised.

Get more info at the RCS page.