Every software projects has various levels of development, and the most important thing is to have a version control system. Version control system not only provides a backup of the code for every version, but allows a collaborative team approach in working on the software. For this, various tools like CVS, SVN, Git, Bazaar and Mercurial have been developed. In this article, we are going the websites which provide a cloud based online hosting for such tools and in that, discuss the features of github, bitbucket, beanstalk and sourceforge and compare them. But before that, let’s have a look over CVS, SVN, Bazaar, Git and Mercurial and the advantages associated with them.
Version Control Systems
CVS which is the acronym for Concurrent Version System, is a client-server revision control system, and yes, it was the first and foremost of its kind. Later, subversion (SVN) came into the picture, and took over the whole screen. From Google code to source forge, from development of open source to every great software, SVN worked behind everywhere the scenes. SVN provided a heck lot of features over the traditional CVS such as feature/bug tracking etc. Bazaar also came into the scenes but lasted a very small age. Though big projects like Ubuntu adopted it at early stage, but due to maintenance, it didn’t end long. Mercurial and Git came up as DVCS (Distributed CVS) , and whoop, they took over the world. Nothing frantic, but git and mercurial have a lot and lot of features over the previous version control system, and will be discussed in detail in another blog post. The detailed comparison is below.
So coming back to where we were, let’s dig into the history a little bit. It all started with SourceForge. The father of all version control online hosting websites, sourceforge started in 1999, and was the first open source website of its kind. The source code of sourceforge software itself was available to public for free, but later after November 2001, no more versions were released for public. Over the years, it not only served as online CVS, but added the features of bug tracking, feature requests, download mirrors, and yes, it provides a free website for all the open source projects hosted on it. Currently it supports all the major version control systems, viz, CVS, SVN, Bazaar, Git and Mercurial. The one important part is that SourceForge provides only open source projects hosting. One distracting thing is the advertisements on the website, but every service needs some revenue, so its cool.
Github started in 2008, and was the first solution to provide GIT support. The flexibility with DCVS and GIT tempted many software developers round the globe to switch to GIT, and thus ultimately to Github. It is also a community maintained platform, and the various tools are developed and enhanced by developers, all open source. Today, Github is the most widely used for open source project development, and has a lot of benefits over its peers. The premium account on github allows hosting of private repositories too, which helps in building private projects, and the free version is essentially open source. Github also provides a lot of features, some of them being simple one click forking, github gists, github websites, pull request feature, issue trackers, commit comments, easy source control and what not! Eclipse plugin support is also a great feature by github, which allows everything directly from the IDE. Automatic testers like Jenkins move the feature list even more upwards. It supports GIT and Mercurial only. Adding to it, a nice and simple User Interface keeps it the best for open source projects.
Most widely used for open source projects
First to support GIT, supports Mercurial too
One click Forking & Starring
Two click Pull Request
Pull Request and Issue tracker support
Github gists and pages
Automatic code testers like Jenkins
Free for open source only, premium accounts for private repositories
Next, developed by Atlassian, Bitbucket is another foremost online SVCS hosting website which provides almost all the features as Github, and more that that, provides unlimited number of private repositories for up to 5 users. Although it is not as widely used as Github, but it is a tough competitor to it, and many startups and small companies use bitbucket for project hosting. It also provides support for hipchat notifications and github gists like snippets. It also features JIRA, Confluence and Bamboo for tracking, collaboration and continuous integration. It also supports GIT and Mercurial only, and is a tough competitor to Github.
Beanstalk, launched in 2007, is a private GIT and SVN hosting. It falls back as it is free just for one user and one repository, and that too limited to 100 MB. The premium accounts of Beanstalk do provide a lot of features, but not as much as Github and Bitbucket. One major feature is the FTP support for the repositories, which is not provided by other version control hosting websites, which makes it easier to push the code online and share with collaborators. But still, it is a very less widely used online version control repository hosting, and subservient than others.
Free for just one user and one repository
GIT and SVN support
So, concluding, if you have an open source project, go for Github; if you are a startup and have a small team, go for Bitbucket and enjoy its free private repositories, and if you live in 2000s, go for sourceforge ?
Version Control Systems
CVS, SVN, Bazaar, GIT, Mercurial
Only Open Source
Famous for open source, supports private repos
Open source, Private
Free for public repositories, and free premium account for students
Unlimited public and private repositories for up to 5 users