Differences between Crucible and Bitbucket Server
Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Summary
Bitbucket Server and Crucible both offer code review capabilities but differ in their approaches.
Bitbucket's pull request model reviews all changes in a branch at once, aligning with distributed source control system workflows like Git. Developers create pull requests to merge their branches back into the main code line, and the entire set of changes can be reviewed together.
In contrast, Crucible allows selective reviews, enabling users to pick specific changes or commits from a single branch for review.
This distinction means Bitbucket provides a more holistic branch review, while Crucible offers more granular control over what is reviewed. If Bitbucket's approach doesn't suit certain needs, teams can still use Crucible on a local server for their code review process.
Solution
Bitbucket Server's pull request (i.e. code review) feature is structured in a way that supports workflows used by distributed source control systems, like Git. Requests are created when a developer asks to merge their working branch or fork back into the main code line (typically known as master). All the changes/commits residing in that working copy can then be reviewed by other developers on the same team. Once the review is complete, the code can then be merged.
This type of review differs from the Crucible code review model in that all changes in a particular branch are reviewed at one time. Instead of comparing one branch to another, Crucible allows the user to select only 1 branch and pick the changes/commits they would like to include in the review. This is the biggest difference between Crucible reviews and Bitbucket Server's pull requests.
If the pull request model doesn't meet your requirements for code review, then it is an option to continue to run Crucible on a local server. You can then point Crucible to your Git repositories stored in Bitbucket Server.
Code Review (Crucible) vs Pull Requests (Bitbucket)
Pull Requests | Code Review (Crucible) |
---|---|
Allows you to merge code directly | Is "Read only." Merge has to be done manually |
Review branches at ease | Review patches, branches, commits, individual files or other remote repositories |
Simpler to use | Has more granular review features (Example: Due date, comment categories, time logging) |
Review every commit or a single commit in a branch at once | Select a range of commits to filter the review |
Integration into Jira updates with code changes | Integration with JIRA for time logging |
Works with Git | Works with git and other version control, such as subversion and P4 for example |
Easy built-in ability to enforce workflows and policies | Is read only / indexes. It is possible to add webhooks into bitbucket to enforce review checks. |
When to use Crucible over Pull Requests?
You can consider using Crucible if you meet any of the following:
Need to review multiple repos on one review
Not all code you're reviewing is on Git
Your reviews are very large, and you need to break down commits to separate reviews
Your teams do not use a feature branch workflow
For all other requirements other than the above, Pull Requests are the best option.
More details on how the Crucible workflow works can be found at The Crucible workflow
More details on how the Pull Request workflow works can be found at: Review and discuss a pull request
Was this helpful?