GitHub vs. Bitbucket vs. GitLab vs. Coding

Repository Management Services Compared

Today, repository management services are key components of collaborative software development. They enable software developers to manages changes to the source code and related files, create and maintain multiple versions in one central place. There are numerous benefits of using them, even if you work in a small team or you are a one man army. Using repository management services enables teams to move faster and preserve efficiency as they scale up.

In this article we briefly introduce and compare four popular repository management services GitHub, Bitbucket, GitLab, and Coding by touching on multiple aspects including basic features, relationship to open source, importing repositories, free plans, cloud-hosted plans, and self-hosted plans. The purpose of this article is not to swing opinions, but serve as a starting point for your research when you are looking for the best solution for your project.

GitHub

(source: Github.com)

GitHub is Git based repository hosting platform which was originally launched in 2008 by Tom Preston-Werner, Chris Wanstrath, and PJ Hyatt. This is the largest repository host with more than 38+ million projects.

Bitbucket

(source: Bitbucket.org)

Bitbucket was also launched in 2008 by an Australian startup, originally only supporting Mercurial projects. In 2010 Bitbucket was acquired by Atlassian and from 2011 it also started to support Git hosting, which is now its main focus. It integrates smoothly with other services from Atlassian and their main market is large enterprises.

GitLab

GitLab started as a project by Dmitriy Zaporozhets and Valery Sizov providing an alternative to the available repository management solutions in 2011. In 2012 the site GitLab.com was launched, but the company was only incorporated in 2014.

Coding

(source: coding.net)

Coding was founded by Zhang Hai Long (张海龙) in Shenzhen, China in 2014 and received $15 million funding in the same year. Coding is currently used by 300 000 developers and hosts 500 000 projects. Their user base is rapidly growing on the mainland Chinese market and they have already set their eyes on international users.

Basic Features

Each of the four platforms is one big universe on its own when it comes down to features and capabilities. Making a detailed feature comparison is beyond the scope of this post. But if we are only looking at basic features they show a lot of similarities:

  • Pull request
  • Code review
  • Inline editing
  • Issue tracking
  • Markdown support
  • Two factor authentications
  • Advanced permission management
  • Hosted static web pages
  • Feature rich API
  • Fork / Clone Repositories
  • Snippets
  • 3rd party integrations

For more details please visit the feature pages of Bitbucket, GitHub, GitLab, and Coding.

Which one is open source?

From the four repository management services, only GitLab has an open source version. The source code of GitLab Community Edition is available on their website, the Enterprise edition is proprietary.

GitHub, who is famous for open source friendliness and hosts the largest amount (19.4M+) of open source projects is not open source.

Bitbucket is not open source but upon buying the self-hosted version the full source code is provided with product customization options.

Coding is also entirely proprietary and the source code is not available in any form.

What is the best place to discover public projects and connect with other developers?

GitHub, GitLab, Bitbucket, and Coding both have public repository discovery functions and apart from GitLab each offers the ability to easily follow other users. Coding even lets you add customized tags to personal profiles, which helps to find and to connect with other users with a particular interest.

Even though GitHub is not open source, it is still the hotbed of open source collaboration. It has by far the largest amount of public and open source projects and also hosts many of the most significant ones.(Docker, npm) With the early adoption of social features and with the free hosting of public projects, it is clearly a social hub for professional developers and everyone else who is interested in software development. What’s more, an exciting active GitHub profile could help you landing a great job. In more and more cases recruiters favor candidates with an active GitHub profile.

Importing Repositories

When you are trying to decide which system to use, the ability to import and use your previous projects is critical. Bitbucket is in this sense stands out from the other three because this is the only one that supports Mercurial repositories.

Coding, GitHub, and Bitbucket supports importing repos based on multiple different VCSs, GitLab on the other hand only supports Git. Git is the most popular VCS, but moving to GitLab could be complicated if you are using Mercurial or SVN repositories at the moment. GitLab’s repository importing feature explicitly geared to help users migrate from other more popular platforms.

GitHub supports:
- The import of Git, SVN, HG, TFS.

GitLab supports:
-The import of Git.
-Easy import from other services GitHub, Bitbucket, Google Code, Fogbugz.

Coding supports:
- The import of Git, SVN, HG.

Bitbucket supports:
- The import of Git, CodePlex, Google Code, HG, SourceForge, SVN.

Free Plans

All the 4 providers offer a free plan, but when we are looking at the details they have some significant differences.

GitHub free plan allows you to host an unlimited number of public repositories with the ability to clone, fork and contribute to them. There is no limit on disk usage, however, projects should not exceed 1 GB and individual files 100 MB. If you are looking to host private projects for free you need to look at other providers.

Bitbucket’s Small teams plan let’s 5 members to collaborate on an unlimited number of projects. Repositories here have a 1 GB soft size limit, when you reach this they will notify you by email, but your ability to push to the repository will only be suspended when your repo’s size reaches 2 GB.

GitLab cloud-hosted plan lets an unlimited number of users to collaborate on an unlimited number of public and private projects. They have 10GB space limit per repository, which is definitely a very generous proposition compared to what the other 3 provider offers.

The free plan from Coding let’s 10 members to collaborate on an unlimited number of public and private repositories, but they impose a 1 GB overall storage limit which feels like a big restriction.

If you are looking for a free cloud-based solution for private projects GitLab’s offer is probably the most appealing.

GitLab Community Edition is the only self-hosted free plan on our list. This is definitely the best option for those who like to have full control over the code base and have the resources to maintain their own servers. The downside here is that it only comes with community support and some more advanced features as code search are not included.

Paid Cloud-Hosted Plans

All the paid cloud-hosted plans offer an unlimited number of private repository storage and email support as well.

GitHub personal account offers essentially the same functionalities as their free account with the ability to host an unlimited number of private repositories. There is no limit on how many users with a personal account can collaborate, but they can’t use organizational features such as team-based access permissions and billing is done independently. GitHub Organisation plan starts at $25 / month for 5 people and each additional user cost $9 / month.

Bitbucket cloud-hosted Growing Team plan start with 10 users / $10 / month and for $100 / month it removes the limit on the number of team members.

Coding has two paid plans the Developer Plan for maximum 20 users and the Advanced plan for 50 users. Each case you and your team can host an unlimited number of repositories with the storage limit 5GB and 10GB respectively. It is worth mentioning that coding has more flexible billing options, competitive prices, and strong support including live chat and phone call. (They might only be available in Chinese though.)

Paid Self-Hosted Plans

GitHub, GitLab, and Bitbucket self-hosted versions provide enhanced features compared to their cloud-hosted counterparts. Each of these providers has created comparison tables to compare the features of the cloud-based and the self-hosted editions:

Coding is rather mysterious about their Enterprise edition, they don’t disclose any details of pricing and feature on their website. If you are considering their host their solution behind your firewall, you need to reach out to their team. They assess the client’s needs first and then they provide custom quotes based on the assessment.

GitHub Enterprise plan starts at $2500 / 10 users and it’s billed annually. If you need more than that, which is likely to be the case, then you need to contact their sales team. Apart from your the servers at your own premises, GitHub Enterprise can also be deployed to AWS and Azure.

One of the best thing about Bitbucket Small Teams and Growing Teams that they only need a one-time payment. Paying $10 for Bitbucket Small Teams once for all, definitely makes GitHub look expensive. The Bitbucket Enterprise version has a limit of 2000 users. If you need more than that we suggest that you should check out Bitbucket Data Center.

GitLab Enterprise edition cost $39 / user / year and has no minimum limit on the number of users. It is more expensive than Bitbucket but it is still a wallet-friendly option. Adding some of the extra tools and services can make it quite pricey:

  • Premium support $99 / user / year (min 100 users)
  • GitLab Geo $99 / user / year (no min users)
  • Pivotal Tile $99 / user / year (no min users)
  • File Locking $99 / user / year (no min users)

Integration with flow.ci

GitHub, Bitbucket, GitLab, and Coding work seamlessly together with flow.ci. Connecting your either of your accounts to flow.ci only takes few steps.

Summary

We can not announce one service to be ultimately superior to the others. Not only because that would easily start a pub fight but also all of them are powerful and feature rich services. Nevertheless, there are particular scenarios when it is not far fetched to recommend a certain service:

  • If you want an open source solution you should pick GitLab.
  • If you are using other products from Atlassian (eg.: Confluence, Jira.. ), hosting your repositories on Bitbucket definitely make sense.
  • If you are working on an open source project then GitHub is definitely a great choice.
  • At this moment we would only recommend Coding for Chinese speaking teams since only their Web IDE has English UI.

It is likely that one of the four repository hosting services can give you what you need. If it is not the case, then check out Assembla or CloudForge.


flow.ci is a hosted continuous integration and delivery service, designed for teams who need a flexible and scalable solution but prefer not to maintain their own infrastructure. In flow.ci, development pipelines or automation workflows are simply called flows. In a flow, every step is a plugin that can be added by two clicks. You can add as many steps to your flow as you need, and there is no time limit on builds.