Saturday, 20 January 2018

Git Wars: GitHub vs Bitbucket

Github and Bitbucket are two of the largest web-based hosting services for source code and development projects. Unfortunately, they both don’t support the popular SVN version-control system (VCS). And they take different approaches to private vs. public repositories that affect the ease of collaboration and the risk of data exposure.

difference-between-github-and-bitbucket

A Github account is the calling card of the software developer. Just as any writer would be asked to show their blog, every developer is expected to produce examples of their code on Github. But that does not necessarily make Github the best choice for software development teams. Github thrives on making code easy to share, and in that regard is indispensable for the open source backbone of the internet as we know it. At the same time, that means organizations must take greater care to manage their users and access control settings to ensure they are not compromising their cyber resilience. The pricing models of the two products likewise reflects their differing approaches to how to best manage code.

GitHub

First of all, Github only hosts projects that use the Git VCS. That’s it. Nothing else. But Git is far and away the most commonly used VCS, so Github is still the largest code host of them all, with some 13.7 million-plus repositories of code.

Git was originally started in 2008, and was written in both Ruby and Erlang. Github is designed to encourage close communication and collaboration within development teams. To this end it includes features like highlighted code comments and collaborative code review. Other notable features are listed below.

  • An integrated issue tracker right within your project
  • Milestones and labels within projects
  • Branch comparison views
  • Native applications for Windows and Mac desktops, and also an Android app
  • Support for over 200 programming languages and data formats
  • Github pages, a feature for publishing and hosting within Github
  • Security such as use of SSL, SSH and/or https for all data transmission, and two-factor authentication for login
  • API integration for easy integration of 3rd-party tools, and integration with a large number of other tools and platforms. Some examples are Asana and Zendesk for issue/ bug tracking; CloudBees, Travis and CodeClimate for Continuous Integration (CI); AWS, Windows Azure, Google Cloud, and Heroku cloud hosting. 
  • The Github guys also recognize that SVN is also a widely used alternative to Git, so they provide a tool to import SVN repos into Git and host them on Github, although reports are that it’s at best a clunky, somewhat awkward solution. And they shrewdly made sure that Github repos are fully accessible on the SVN client.
  • Syntax highlighting. Github users will be used to this as a standard, indispensable feature, but Bitbucket notably continues to lack it.

Github pricing is free for public repos and unlike Bitbucket, doesn’t offer free private repos. For private repos, Github allows unlimited numbers of collaborators grouped into the following paid plans. The Organization plans allow a central administrator who manages teams and can set varying levels of permissions. There is also a Github version tailored for enterprises:

Bitbucket

Right off the bat, Bitbucket’s advantage over Github is that it supports the Mercurial VCS in addition to Git. But it also doesn’t support SVN, yet. Bitbucket is written in Python and uses the Django web framework.

Bitbucket was also launched in 2008 in Australia and was originally an independent startup offering hosting only for Mercurial projects. It was acquired in 2010 by fellow Australian company Atlassian, and about a year later added support for Git repos.

Bitbucket integrates very well with JIRA, a popular project and issue-managing app. This is no surprise given that JIRA is also an Atlassian product. Other features are:

  • Pull requests and code reviews
  • Unlimited private repos
  • Branch comparison and commit history
  • Bitbucket Mac and Windows client called SourceTree; Android app called BitBeaker
  • Bitbucket for Enterprises, called Stash
  • Integration with tools like Jira, Crucible, Bamboo, Jenkins

The pricing structure differs from Git’s in that Bitbucket charges per user whereas Git charges per repository. Bitbucket allows unlimited public repos for all, but also unlimited private repos for free for up to 5 users. Beyond that, pricing is tiered as per the table below:
Max no. of usersPrice (US$ per month)Private RepositoriesPublic Repositories
5FreeUnlimitedUnlimited
10$10UnlimitedUnlimited
25$25UnlimitedUnlimited
50$50UnlimitedUnlimited
100$100UnlimitedUnlimited
Unlimited$200UnlimitedUnlimited

Conclusion

Bitbucket and Github are very closely matched in terms of features if you need to use Git. And if your VCS is Mercurial, then it’s only Bitbucket for you. Each has some useful features not found in the other, such as Github pages for small web-hosting projects, or Bitbucket’s JIRA integration.

The choice may come down to the structures of your projects. If you have many private projects and small numbers of users per project, Bitbucket may be a cheaper option because of its per-repo pricing. If you have large teams collaborating on just a few projects, Github may be the better option.

Apart from pricing, the comparison chart below may also help you in your decision:
FeatureBitbucketGithub
Supported VCS
Mercurial, Git
Git
Public repos
Free, unlimited
Free, unlimited
Private repos
Free up to 5 users
Starts at $7/month for unlimited users
Integration
Jira, Crucible,
Jenkins, Bamboo
Asana, Zendesk, CloudBees, 
Travis, CodeClimate, 
AWS, Windows Azure, 
Google Cloud, and Heroku
Popular projects hosted
Adium, Mailchimp, Opera, 
Python, Django
Bootstrap, Node,js, jQuery, 
Rails, Homebrew
Notable Extra features
Spoon, Jira integration, 
External authentication via Github, Twitter, Facebook, Google
Two-factor authentication, 
Github Pages, Github Gists
Previous Post
Next Post

post written by: Dhaval Thakkar

Dhaval Thakkar is an enthusiastic web developer who is passionate about learning new things and always ready to help other developers.Just Web Code is a way to provide web solutions to web developers.

0 comments: