Atlassian Bitbucket gives teams Git code management, but also one place to plan projects, collaborate on code, test and deploy. It is marketed in the SaaS form (Bitbucket Cloud) and in a self-managed version (Bitbucket Server), however they are not the same product. Bitbucket Server is simply a re-branding of Stash. The two products are completely different code bases, written in two different languages (Cloud in Python, Server in Java) and do not maintain feature parity. Because of separate codebases they each have a completely different API, making it much harder to integrate.
Bitbucket supports Mercurial or Git, but not SVN. GitLab does not support Mercurial or SVN. GitLab is a complete DevOps platform, delivered as a single application, with built-in project management, source code management, CI/CD, monitoring and more. Bitbucket only does source code management. You would need to use Atlassian Jira to get project management, Bamboo for CI/CD and Atlassian does not provide a monitoring solution. Additionally, GitLab Ultimate comes with robust built-in security capabilities such as SAST, DAST, Container Scanning, Dependency Scanning, License Compliance, secret detection and more. Bitbucket does not support these capabilities and Atlassian does not have a product for them.
GitLab also offers an “on-prem” self-managed and “cloud” SaaS solution. GitLab runs the exact same code on its SaaS platform that it offers to its self-hosted customers. This means customers can migrate from self-hosted to SaaS and back relatively easily and each solution maintains feature parity.
GitLab has seen an increased interest from world-wide internet searches (a strong indicator for devops interest) over the past five years.
Between 2018 and 2019 Gitlab adoption as a Version Control System has increased by 21% whereas Atlassian Bitbucket’s adoption has decreased by 11%. This is as per The Next Stack’s analysis of Jetbrains Developer Ecosystem surveys.
Bitbucket Limitations and Challenges