Online code sharing is performed using version control systems that are also known as source control or revision control systems. These systems allow software developers to easily manage, edit and merge multiple versions of source code. This code is then uploaded, or "committed," to online repositories for sharing. Three of the most common version control tools are Apache Subversion, Git and Mercurial.
As of 2015, there are two types of version control system used for sharing code online: centralized systems that are based on the idea of a code repository existing on a "central" server, and distributed systems where contributors maintain individual local copies of the repository.
Websites such as GitHub, Atlassian Bitbucket, Gitorious and Microsoft CodePlex provide hosted version control systems for developers. These services make it simpler for developers to collaborate on projects. Some developers prefer to host source control systems themselves, either through their own networks, or by using cloud solutions such as Dropbox or Amazon EC2.
Recent version control systems such as Git use the distributed model of version control. Many notable projects use Git, including the Linux kernel and D3.js. However some large organizations, such as the Apache Software Foundation, continue to use SVN and similar centralized solutions.