Bitbucket Data Center vs. GitLab Premium

GitLab compared to other tools

GitLab is the next-generation development toolset that covers 100% of your software development lifecycle.

GitLab unifies chat, issues, code review, CI, CD, and cycle analytics into a single UI. Unlike other source code management tools that only support a portion of your development lifecycle, GitLab delivers a unified experience for every step of the development lifecycle providing the most efficient approach to software delivery. So no matter what line of business you're in, GitLab gives you the edge to compete, innovate, and win.

FEATURES

Built-in CI/CD

GitLab has built-in Continuous Integration/Continuous Delivery, for free, no need to install it separately. Use it to build, test, and deploy your website (GitLab Pages) or webapp. The job results are displayed on merge requests for easy access.

Learn more about CI/CD

Innersourcing

Internal projects in GitLab allow you to promote innersourcing of your internal repositories.

Find out more about innersourcing

Group Milestones

Create and manage milestones across projects, to work towards a target date from the group level. View all the issues for the milestone you’re currently working on across multiple projects.

Learn more about Group Milestones

Powerful Issue Tracker

Quickly set the status, assignee or milestone for multiple issues at the same time or easily filter them on any properties. See milestones and issues across projects.

Learn more about the Issue Tracker

Move issues between projects

You can move issues between projects in GitLab. All links, history and comments will be copied and the original issue will reference the newly moved issue. This makes working with multiple issue trackers much easier.

Learn more about moving issues between projects

Create new branches from issues

In GitLab, you can quickly create a new branch from an issue on the issue tracker. It will include the issue number and title automatically, making it easy to track which branch belongs to which issue.

See how in our documentation

Cycle Analytics

GitLab provides a dashboard that lets teams measure the time it takes to go from planning to monitoring. GitLab can provide this data because it has all the tools built-in: from the idea, to the CI, to code review, to deploy to production.

Learn more about Cycle Analytics

Quick actions

GitLab provides a convenient way to change metadata of an issue or merge request without leaving the comment field with slash commands.

Documentation about quick actions

Issue Boards

GitLab has Issue Boards, each list of an Issue Board is based on a label that exists in your issue tracker. The Issue Board will therefore match the state of your issue tracker in a user-friendly way.

Learn more about GitLab Issue Boards

Built-in Container Registry

GitLab Container Registry is a secure and private registry for Docker images. It allows for easy upload and download of images from GitLab CI. It is fully integrated with Git repository management.

Documentation on Container Registry

Time tracking

Time Tracking in GitLab lets your team add estimates and record time spent on issues and merge requests.

Learn more about Time Tracking

Preview your changes with Review Apps

With GitLab CI/CD you can create a new environment for each one of your branches, speeding up your development process. Spin up dynamic environments for your merge requests with the ability to preview your branch in a live environment.

Learn more about Review Apps

New features every month

GitLab is updated with new features and improvements every month on the 22nd.

One integrated tool

Other tools require the integration of multiple 3rd party tools to complete the software development lifecycle. GitLab has a completely integrated solution that covers the entire development lifecycle.

Highly Available setups

For mission critical releases, you cannot afford downtime. Split your app servers, database, etc., into multiple instances and work in read-only mode during backups.

More information on High Availability

IPv6 ready

If you host GitLab yourself, IPv6 is supported as long as your underlying provider can support it. GitLab.com on the other hand does not support IPv6 at the moment due to limited provider support.

Read about the different ways to install GitLab

AD / LDAP integration

Sync groups, manage SSH-keys, manage permissions, authentication and more. You can manage an entire GitLab instance through the LDAP / AD integration.

More information about AD / LDAP integration

Multiple LDAP / AD server support

Link multiple LDAP servers to GitLab for authentication and authorization

Advanced LDAP configuration

Multiple approvals in code review

In GitLab, to ensure strict code review, you can require a specific number of approvals on a merge request by different users before being able to merge it. You can undo an approval by removing it after the fact.

Approvals Documentation

Confidential Issues

Keep your information secure with Confidential Issues. With GitLab, you can create confidential issues visible only for project members with Reporter access level or above.

Learn more about Confidential Issues

Related issues

Explicitly mark issues as related and track their status.

Learn more about Related Issues

Access to and ability to modify source code

GitLab Enterprise Edition is publicly readable, meaning you can scan or modify the code to meet your security and development needs. The code used by most other providers is proprietary, meaning you cannot edit or view the source code.

Read the GitLab Enterprise Edition license.

A comprehensive API

GitLab provides APIs for most features, allowing developers to create deeper integrations with the product.

Read our API Documentation

Search files with fuzzy file finder

GitLab provides a way to search a file in your repository in one keystroke.

Read about the file finder in our documentation

Advanced Global Search

Leverage Elasticsearch for faster, more advanced code search across your entire GitLab instance.

Learn more about Advanced Global Search

Advanced Syntax Search

Use advanced queries for more targeted search results.

Learn more about Advanced Syntax Search

Fast-forward merge with option to rebase

With this setting at the project level, you can ensure that no merge commits are created and all merges are fast-forwarded. When a fast-forward merge is not possible, the user is given the option to rebase.

Learn more about rebase before merge

Remote repository push mirroring

Mirror a repository from your local server to elsewhere.

Learn more about repository push mirroring

Remote repository pull mirroring

Mirror a repository from elsewhere to your local server.

Learn more about repository pull mirroring

Merge request approvals

When a project requires multiple sign-offs, GitLab Enterprise Edition enables you to make sure every merge request is approved by one or more people. Merge request approvals allow you to set the number of necessary approvals and predefine a list of approvers that will need to approve every merge request in a project, and in-turn improve your code’s quality.

Learn more about merge request approvals

Disaster Recovery

Fail over in minutes to another data-center.

Learn more about Disaster Recovery

Granular user roles and flexible permissions

Manage access and permissions with five different user roles and settings for external users. Set permissions according to people's role, rather than either read or write access to a repository. Don't share the source code with people that only need access to the issue tracker.

Learn more about User Roles

Projects

Organize your repository into private, internal, or public projects.

Learn more about Projects

Merge Requests

Create merge requests and @mention team members to review and safely merge your changes.

Learn more about merge requests

Cherry-picking changes

Cherry-pick any commit in the UI by simply clicking the Cherry-Pick button in a merged merge request or a specific commit.

Learn more about cherry picking merge requests

Activity Stream

View a list of the latest commits, merges, comments, and team members on your project.

Learn more about the Activity Stream

GPG Signed Commits

Sign commits and prove that a commit was performed by a certain user.

Read more about GPG signed commits

Reject unsigned commits

GitLab Enterprise Edition Premium allows you to enforce GPG signatures by rejecting unsigned commits.

Read more about enforcing push rules

Verified Committer

Verify that a push only contains commits by the same user performing the push.

In development for GitLab. Follow this link for more information.

Subgroups: groups within groups

Create groups within groups to easily manage large numbers of people and projects.

Learn more about Subgroups

Object storage for LFS

LFS files can be stored on Object Storage (Amazon S3)

Learn how to store artifacts on object storage

Globally distributed cloning with GitLab Geo

When development teams are spread across two or more geographical locations, but their GitLab instance is in a single location, fetching and cloning large repositories can take a long time. Built for distributed teams, GitLab Geo allows for read-only mirrors of your GitLab instance, reducing the time it takes to clone and fetch large repos and improving your collaboration process.

Learn more about GitLab Geo

Support for High Availability

To avoid downtime, GitLab Enterprise Edition Premium offers support for High Availability (HA). A Service Engineer will help you identify your specific HA needs and map out an architecture.

Learn more about GitLab's High availability

Deploy Boards

GitLab Enterprise Edition Premium ships with Deploy Boards offering a consolidated view of the current health and status of each CI environment running on Kubernetes. The status of each pod of your latest deployment is displayed seamlessly within GitLab without the need to access Kubernetes.

Learn more about Deploy Boards

Easy upgrade process

Using our official Linux repositories or the official Docker image, upgrading GitLab is a breeze.

Learn how to upgrade your GitLab instance

Automatically close issue(s) when a merge request is merged

With GitLab, you can use specific keywords to close one or more issues as soon as a merge request is merged.

Learn more about automatically closing issues

Work in Progress merge requests (WIP)

Prevent merge requests from accidentally being accepted before they're completely ready by marking them as Work In Progress (WIP). This gives you all the code review power of merge requests, while protecting unfinished work.

Learn more about WIP MRs

Based on Git, a distributed VCS

Git, on which GitLab is built, is fully distributed. Every user has a complete copy of the repository, allowing for much faster access to history, easier branching and an overall better experience.

Get started with Git

Protected branches

Granular permissions for branches you want to protect.

Read about protected branches

Custom Git Hooks

Leverage the power of Git Hooks and chain them together to fire off custom scripts when certain actions occur on the repository. If the commit is declined or an error occurs during the Git hook check, the error message of the hook will be present in GitLab's UI. GitLab supports all types of hooks.

Learn how to use Git Hooks with GitLab

Integrated Git-powered wikis

A separate system for documentation called Wiki, is built right into each GitLab project. Every Wiki is a separate Git repository.

Learn more about GitLab Wikis

Responsive-first design

GitLab is built with a responsive-first design approach. Be it on a desktop, tablet or smartphone, GitLab is optimized to be viewed for the best result.

Community based, users can help shape the product

GitLab has open issue trackers for almost all of its operations. From GitLab itself to infrastructure and marketing, you can help shape the product.

View all GitLab contributors

Git LFS 2.0 support

Manage large files such as audio, video and graphics files with the help of Git LFS. Git LFS 2.0 file locking support helps large teams work with binary assets and is integrated with our native file locking feature.

Learn more about Git LFS support in GitLab

Create projects with Git push

Push new projects to the desired location and a new private project will automatically be created.

Learn more about creating Projects

Snippets

Store and share code snippets to engage in a conversation about that piece of code. You can embed snippets on any blog or website using a single line of code.

Learn more about Snippets

SAML SSO for Groups

Connect a group in GitLab EE to a SAML identity provider to manage authentication.

Learn more about LDAP group synchronization

Mercurial repository hosting

Hosts Mercurial DVCS repositories.

See the GitLab issue to implement this

Enforced Two-factor Authentication (2FA)

Two-factor authentication secures your account by requiring a second confirmation, in addition to your password. That second step means your account stays secure even if your password is compromised. The ability to enforce 2FA provides further security by making sure all users are using it.

Learn more about Enforced GitLab 2FA

IP Whitelisting

IP Whitelisting defines safe IP network addresses from which clients can access and interact with the repository server. This helps prevent unwanted third parties from accessing your account even if they have acquired a team member’s email address and password.

Learn more about GitLab IP Whitelisting