Every development team knows the value of a quality repository management solution. It’s a critical component of collaborative software development. Repository management services allow software developers to manage changes to the source code and its related files, creating and maintaining multiple versions in one central location.
Such repositories bring many benefits to the software development process. Even small teams appreciate having one central place for storing all the code versions. By using repository management services, development teams can deliver their work faster and preserve their momentum as they scale up.
There are many different repository management services available on the market today. In this article, I take a closer look at two of them: Atlassian’s Bitbucket and GitLab. I’ll cover aspects such as their basic features, pricing plans, and essential functionalities like repository import.
What is GitLab?
GitLab is a web-based repository management solution that allows teams to collaborate on code, duplicate it, and then merge the finished code into existing projects.
Today, GitLab is used by tech giants such as IBM, Sony, Oracle, Alibaba, as well as NASA, SpaceX, and CERN. The solution includes wiki and issue tracking features that come in handy to teams looking to expand their use of repository management solutions. It’s a DevOps-ready tool that offers a Git repository manager and CI/CD pipeline features under an open-source license.
What is Bitbucket?
Bitbucket is a repository management solution from the Australian company Atlassian. This web-based version control repository comes in handy to development teams that use the Mercurial or Git revision control systems.
Teams can use Bitbucket to plan projects, collaborate on code, test code, and then deploy it. The solution offers many different features to accelerate the development process. For example, teams can approve code reviews efficiently with pull requests or hold discussions right inside the source code thanks to inline comments. Bitbucket pipelines with deployment allow building, testing, and deploying code with integrated CI/CD.
Key features GitLab and Bitbucket have in common
Naturally, each of these two solutions offers an entirely different ecosystem of features and capabilities. But if you consider the basic features required for repository management, you can be sure that both GitLab and Bitbucket include the following ones:
- Pull requests,
- Inline editing,
- Issue tracking,
- Code review,
- Two-factor authentication,
- Markdown support,
- Feature-rich API,
- Sophisticated permissions management,
- Fork/clone repositories,
- Hosted static webpages,
- Third-party integrations.
If you’d like to learn more about the particular features each of these tools offers, it’s best to visit their feature pages.
Relation to open-source
An important feature to consider in choosing a repository management solution its relation to the open-source ecosystem.
Out of the two, only GitLab offers an open-source version. The Community Edition source code is available on their website. The Enterprise Edition code is proprietary. While Bitbucket is not available in the open-source version, if you invest in a self-hosted version, you will be provided with the full source code together with extensive product customization options.
To help development teams discover public projects and get in touch with other developers, a repository management solution needs to contain public repository discovery functions. Fortunately, both GitLab and Bitbucket offer that. However, Bitbucket also enables developers to follow other users easily and helps them connect with developers who have similar interests.
Note: The most important place for open-source collaboration is GitHub, another repository management system which in itself is not open-source but contains the largest number of public open-source projects. It’s easily the best social hub for software developers and anyone else interested in what’s happening in the tech scene.
Both GitHub and Bitbucket offer free plans – but these already include some differences. For example, Bitbucket’s plan, called Small Teams allows five team members to collaborate on an unlimited number of software development projects. The repositories have a limit of 1GB. When you reach that limit, you will be notified by email. However, the team won’t be able to push to the repository until your repository size reaches 2 GB.
GitLab offers a free cloud-hosted plan that allows an unlimited number of users to collaborate on an unlimited number of both public and private projects. To do that, they can take advantage of a 100GB space limit for the repository. If your team is looking for a cloud-based solution for their private projects, GitLab might be the best match.
GitLab Community Edition is a good option for teams that want to fully control their code base and have the resources to maintain their servers (since this is a self-hosted plan). The drawback of this plan is that it doesn’t include some of the more advanced features.
What about paid plans? In general, both tools offer different plans suited to the requirements of different teams. Bitbucket’s cloud-hosted plan starts with ten users for $10 a month. If you pay $100, you will get unlimited team members under your plan.
Don’t forget that the tools also have self-hosted plans. GitLab’s self-hosted version provides sophisticated features in comparison to the cloud-hosted once. Each of these providers offers a cloud-based and self-hosted version of their product, so make sure to carefully review these options when choosing the repository management solution for your team.
Repository import feature
When picking your repository management solution, pay special attention to whether the tool allows using your previous projects easily. While GitLab supports only Git repository, Bitbucket offer support for both Git and Mercurial. Moving to GitLab might become a little complicated if you’re using Mercurial or other repositories.
Fortunately, GitLab is equipped with a repository import feature which helps users to migrate from other platforms easily. Bitbucket also supports the repository import from Git, as well as SVN, Google Code, CodePlex, HG, and SourceForge.
The goal of this article was building a foundation for your research if you’re looking for the best repository management solution for your project. I hope my comparison showed you the essential features offered by these two tools and will help you decide which one will work best for your team.
If you’re considering Bitbucket, get in touch with us – we have plenty of experience in implementing Atlassian tools at organizations of all sizes and can help you make the most of it for your development teams.
I am pleased to share knowledge about methodology, best practices, and IT standards. I use my many years of experience every day to support companies in optimizing their internal processes and developing strategies. I believe that people are the essential element in every team, and the most effective teams are those that work according to jointly developed processes and use tools that release their potential. Personally a pragmatist, entrepreneur, and passionate developer of algorithms, interested in psychology and development.