Version Control Systems

Distributed Version Control Systems

They rely on multiple repositories and provide commands to sync changes across repositories.

The two most popular open source distributed version control systems are probably:

Other choices include:

  • bazaar
  • fossil (it is actually a framework to support development, which includes a revision control system)

Some tools and services can be used to make repositories available on the web. Among them:

  • gitolite is a simple solution to host git repositories
  • Sparkleshare implements a document sharing system alternative to Dropbox. The system is based on Git and uses a central server to communicate update commands to the clients.
  • GitLab is a clone of GitHub, offering the possibility of self-hosting a git repository.

Freemium services:

  • github offers free git hosting to open source projects (and more: it has a bug tracking system, a wiki, and more)
  • bitbucket offers free git and mercurial hosting to projects up to five members. Similar to Github, it includes additional services, such as a bug tracking system and a wiki.

Centralized Version Control Systems

The rely on a central repository, which is made available on a server.

The most popular choice is probably:

Other possibilities include:

  • concurrent version system, initially started as an alternative to SCCS and RCS. It has some quirks (non atomic commits, no explicit support to file renaming) and it has been superseded by subversion
  • RCS, part of the GNU operating system is a revision control system which works on a file basis. Today, it can be useful if you want to put under revision control a single file (e.g., a configuration file, a script); in this case, in fact, the “integrated” repository management offered by the other tools might be an overkill.

GUIs

Various GUI client allows one to interact with different revision control systems.

Some freely available options include:

  • SourceTree is a multi-platform client for git for git and mercurial
  • GitX is a git GUI made for Mac OS X.
  • Syntevo distributes a graphical client for multiple backends (svn/cvs, git/hg)
  • Tortoise a graphical client for svn, that runs on Windows and OSX. A similar client for cvs is available at: Tortoise CSV