Atlassian's Git repository management system, Bitbucket Server (formerly Stash), is intensively and quickly developed and updated. Do you currently use a Bitbucket system and want to know, before updating to a more recent version, what the differences are between your version of the software and the new version? This page provides an overview of all important features and functions that have been implemented or updated since the initial release.
Bitbucket Server 4
With this release, version 4, Atlassian has merged its Git-based software development products, and called it Bitbucket. The Git repository management system Stash has been renamed to Bitbucket Server, and Stash Data Center is now called Bitbucket Data Center.
Bitbucket Server 4.8
Review pull requests at the commit level
The new diff view for reviewing pull requests and the comment function within a pull request, help reviewers by allowing them to easily see each individual commit added to pull requests. The reviewer can be led step-by-step through the changes for each commit when a request author has carefully broken their commits into logical steps. Diffs for the complete pull request are available at all times, so you can always see an overview of changes.
Set default reviewers
With the new feature Default reviewers, teams can set one or more default reviewers for each repository, who are automatically added to a pull request. Different default reviewers can be set for specific branches, or defined for branch patterns or types. You can add additional reviewers to the list or remove them at any time.
Create backups without downtime
It is now possible in Bitbucket Server and Bitbucket Data Center to create backups whenever you need to, without interrupting or shutting down the instance - it won't inconvenience users. Bitbucket supports many different backup strategies, as you can see on Atlassian's page about data recovery and backups.
|Full Bitbucket Server 4.8 Release Notes|
Bitbucket Server 4.7
REST and Java Service APIs to manage pull request restrictions
Atlassian has bridged a gap in Bitbucket Server 4.7, with using REST and Java Service APIs for setting pull request restrictions. In addition to the ability to create remote repositories and define branch permissions, you can define a minimum number of approvals and successful builds that a pull request must pass before it is ready for merging. This update now provides a consistent API, enabling third-party developers to write similar merge checks.
Add or delete tags to commits from within Bitbucket Server
It was always possible to do this via Git, but now it is also possible via the REST API for Bitbucket Server. Many teams asked for an easier way to work with tags, so the Bitbucket interface now allows you to add and delete tags on commits.
Improved raw file link retrieval and sharing
It was difficult to share URLs to the raw files in previous versions of Bitbucket Server. You had to suffix a URL with
|Full Bitbucket Server 4.7 Release Notes|
Bitbucket Server 4.6
You can now search for code right from the search bar in Bitbucket Server 4.6. There are several options:
Commit message and time stamp in directory listings
When a developer browses the repository, it is helpful to know when a file was last changed. Bitbucket Server now displays the most recent commit information for each file in the directory listing. Hovering over the commit, displays the complete commit information.
Show blame on diffs
The blame functionality can now be used in the diff view, so that developers can provide more information about the changes made and who made them on both pull requests and commits.
Personalized time zones
To reduce timestamp confusion, developers can set their personal timezones. With this, remote users and distributed teams see accurate local times in the interface and in notification emails.
|Full Bitbucket Server 4.6 Release Notes|
Bitbucket Server 4.5
Support for Git LFS in combination with Smart Mirroring (Bitbucket Data Center only), plus various improvements and bug fixes. Full Bitbucket Server 4.5 release notes.
Bitbucket Server 4.4
Atlassian has implemented a reviewer status, so the reviewer's opinion is made clear. Both the author and the reviewer can see which pull requests require their attention. To help developers speed up the code review process, the pull request header has been optimized. Users can easily add or remove themselves from the list of reviewers. This is especially useful in large teams with multiple reviewers. A reviewer may opt out when another reviewer is clearly available.
Flexible branch permissions
In Bitbucket Server, you can now define exemptions for all restrictions - whether for enforcing pushes, deleting branches or pre-filling pull requests. Teams can be confident that changes made by developers will always go through the pull request workflow, and the release manager can merge all reviewed changes as normal.
|Full Bitbucket Server 4.4 Release Notes|
Bitbucket Server 4.3
Git Large File Storage (Bitbucket Data Center only)
The new Git LFS support makes it easier to work with large files, improving team productivity. Large files, like graphics and videos, are stored in a separate location, while the Git repository refers to them with simple text pointers, so that the repository is both smaller and faster.
Smart mirroring (Bitbucket Data Center only)
Smart Mirrors improve the clone performance for distributed teams. They can drastically improve the read-performance in distributed teams (clone, fetch, pull), when working with large repositories by making a local mirror node available and keeping it automatically synchronized.
|Full Bitbucket Server 4.3 Release Notes|
Bitbucket Server 4.2
Smart commits allow repository committers to process JIRA Software issues through the workflow via special commands in the commit message.
Application links diagnostics
Bitbucket Server 4.2 has completely redesigned the Application Links. It now includes built-in status and diagnostic information for improved troubleshooting.
|Full Bitbucket Server 4.2 Release Notes|
Bitbucket Server 4.1
This release implemented CommonMark, as well as other improvements and bug fixes. Full Bitbucket Server 4.1 release notes.
Bitbucket Server 4.0
In this release, Stash was rebranded to Bitbucket Server, pull request search was implemented, and many other improvements and bug fixes were made. Full Bitbucket Server 4.0 release notes.
Stash 3.11 provides controllable HTTPS access to repositories plus implements various minor changes and bug fixes. Full Stash 3.11 release notes.
Improved HipChat notifications
The central feature of this release is the integration of Stash and HipChat. It is now possible to configure pull request and commit notifications by project or repository, which are then automatically broadcast in HipChat rooms.
Handling branch permissions has been improved: You can now assign permissions for individual branches, or based on the branch model type, or based on the branch permission pattern within a repository.
|Full Stash 3.10 Release Notes|
This release implements a number of small improvements and bug fixes. Full Stash 3.9 release notes.
Deep links into source code
Linking from the source code has been improved. With just shift+click, a developer can select a range of lines, then add separate lines to the selection with command+click (or control+click), then copy the URL and share their selection with other developers.
Professional software development teams need flexibility to be successful, whether that be in infrastructure, workflow or scalability. Infrastructure requirements often change rapidly. Therefore Stash now supports deployments on Amazon Web Services (AWS). You can configure your AWS server to meet your requirements or use a pre-built Amazon Machine Image (AMI).
Until now, you had to use the Stash Setup Wizard to configure the administrator account, base URL, external database connection, and to add the Stash license, even when installing automatically. In Stash 3.8, all of these settings can be specified in the config properties file: Installing and setting up a Stash instance can now be done without manual intervention. Stash reads the file and applies the settings automatically after launching.
Improved performance monitoring
Stash 3.8 implements tools to for better performance monitoring. Monitored metrics include number of projects, repositories, Git pushes and pulls, as well as a range of thread pool metrics. These Stash metrics are available as JMX counters, and can be viewed with a JMX client such as JConsole.
Cleaner separation of unlicensed and unauthorized users
Handling of unlicensed and unauthorized users pulled in from external user directories has been improved. When selecting reviewers for a pull request, only those reviewers with permission to read the repository are listed - unlicensed and unauthorized users are not displayed. This also applies to @ mentions: Users without a Stash license are not displayed in the user selection list.
|Full Stash 3.8 Release Notes|
Customize the commit message on a merge
With Stash 3.7 you can now add additional information to the merge commit message on pull requests. This enables a more descriptive change history for your repositories.
Like and reply to comments from email notifications
Automatic pull request email notifications are now more helpful. As in previous releases, developers can jump directly to a pull request from the email notification. But now users can also like and reply to comments, directly from within the email notification.
Improved installation and upgrade process
The Stash installer has been reworked to more clearly indicate the differences between the installed and upgrade versions. In particular, on upgrading, Stash asks for the location of your existing Stash home directory.
|Full Stash 3.7 Release Notes|
This release implements a number of small improvements and bug fixes. Full Stash 3.6 release notes.
Likes on comments
Comments in pull requests allow you to discuss and share code changes. In growing teams, more and more users participate in code review conversations, creating lengthy comment threads. In Stash 3.5, liking a comment is an easy way to signal agreement for an existing comment, and reduces the number of "+1" and "I agree" comments.
Syntax highlighting in side-by-side diffs
Stash 3.5 provides syntax highlighting in side-by-side diffs in pull requests and in the source view. That makes it much easier for developers or reviewers to browse through and read the code. Erlang, Perl, Python and Ruby language mappings have also been added.
Tags displayed in commit lists
Tags are often used to mark important points in the code history, such as milestones and releases. In Stash 3.5, you can see these tags in the commit list. Developers can search for commits by their tag, and easily find all the work done since a tag was applied.
|Full Stash 3.5 Release Notes|
Batched email notifications
Notifications are now aggregated for each pull request before being emailed to recipients.
|Full Stash 3.4 Release Notes|
Tasks for pull requests
Stash now allows you to add tasks to pull requests with a single click. With this you can add feedback in the form of actionable tasks, useful for tracking to-do items identified during a review.
|Full Stash 3.3 Release Notes|
Previews of pull requests
In Stash 3.0 branch comparisons allowed developers to identify the differences between two branches quickly. A developer can preview all the work done in a pull request. Now, developers can create a pull request directly from a branch comparison, with one click on a new button. Thanks to this interface change, the user knows which changes need to be merged before creating the new pull request.
A pull request can generate a large number of comments, and it was previously difficult to navigate between comments in the diff view. Now, instead of searching or scrolling through comments, you can step through comment threads with the keyboard shortcuts Shift+N (next) and Shift+P (previous). These new shortcuts complement the shortcuts "N" and "P" for navigating between hunks in the diff view.
Improved experience for new users
Stash now displays a landing page for new users when they log in for the first time. New users can be invited to work with Stash without having to explain to them how it works. The "Welcome to Stash" option in the help menu also displays this information.
|Full Stash 3.2 Release Notes|
Search in all diffs
Commits and pull requests often consist of multiple files where it is not easy to search for specific changes across all of the code. Should a user search for a method name? Or for a specific variable? Now diffs provide a search function, allowing users to quickly and easily find instances of a text string. Stash searches within the multi-file diff and displays the results where the string was found, as well as the surrounding context lines.
Files and images in comments
Stash has long supported inserting links and images in descriptions with Markdown. In Stash 3.1, you can insert images and files in comments with Markdown. You can easily upload attachments or insert them with drag & drop, to include images and documents in the review process.
|Full Stash 3.1 Release Notes|
Members of internationally distributed teams can now work in their own language. Each user can change the language setting within their own account options, overriding the global default setting.
One of the most requested features has been implemented in Stash 3.0. The comparison between branches of source code changes and commits has long been a part of pull requests in Stash. But now developers can compare their work to branches, while it is still actively under development, i.e. before generating a pull request.
More room for code - new sidebar design
The more code you can fit on the screen, the easier it is to work with. Therefore, all navigation and repository actions have been moved to a collapsible sidebar on the left of the screen. Navigation links are displayed as icons even when collapsed, so developers can quickly access code, commits, branches and pull requests. To collapse/uncollapse the sidebar, use the keyboard shortcut "[".
|Full Stash 3.0 Release Notes|
Better diff navigation with hunk maps
In Stash 2.11, Atlassian introduced side-by-side diffs to make it easy to see code changes in commits and pull requests. But the navigation was not so good when dealing with very large files. Hunk maps solve this problem.
Hunk maps provide an overview of how many changes were made to a file, and where they are located. You can jump directly to a change by clicking on it in the hunk map. Now developers can review code changes, rather than spend all their time searching.
Stash offers many options for discussion of code and changes: inline comments, comments on pull requests and commits, and comments on files. A comment counter is now shown in the list of pull requests and commits, showing what the team finds most interesting (or controversial), and what changes are being actively discussed.
Local avatar images
Stash now allows users to upload a local file for their avatar instead of using a Gravatar image. Gravatar is still supported and set as the default, but users can change their image from their user profile settings. Teams who don't (or can't) use Gravatar can deactivate the Gravatar default through the administration dashboard.
DIY Backup as an alternative to the existing backup client
This feature is specifically aimed at enterprise customers. Teams that work with many projects and multiple repositories can reduce downtime with the DIY Backup option. DIY Backup leaves the team in control of the backup environment, allowing them to choose industry-standard tools to back up the file system and database.
SSH access keys: Read/write and read-only keys
You can choose between read/write and read-only keys when using SSH at the project and repository levels. The build system is able to use access keys to perform Git operations, for example: to apply new tags, or to merge a successful build to the default branch. If an access key is to be deleted, Stash warns you about all the projects and repositories that use this particular key, so you can choose to delete the key from these locations at the same time.
|Full Stash 2.12 Release Notes|
Stash 2.11 supports side-by-side diffs, in the same way as Bitbucket. The new view displays changes in a 'before and after' style two-panel arrangement, and offers such features as inline comments and line-based highlighting. The side-by-side diffs are synchronized when scrolling so that the corresponding lines and edits are always shown together.
Discussions about code changes do not always fit into the lifecycle of a pull request, but until now, there has been no way to comment outside of this context. To meet this need, Stash 2.11 has introduced commit comments: You can now comment on any commit.
Stash 2.11 allows you to add a comment to any file during a pull request or a commit: Click on the corresponding button from the right-hand toolbar.
New JIRA integration
With the new development panel, JIRA 6.2 displays all development information in one place: branches, commits, pull requests and builds. The new JIRA 6.2 keeps teams up to date with the status of projects and processes.
|Full Stash 2.11 Release Notes|
This release implements a number of small improvements and bug fixes. Full Stash 2.10 release notes.
More information in branch listings
Stash 2.9 displays more information in this central location, making it easier for team leaders and branch managers to see the branch progress with a glance, as well as view the pull request information and perform a branch search.
Stash now supports read-only SSH access to projects and repositories. A project-level access key can be used for any build and development tasks for repositories in this project - without having to store user credentials on another system, and without requiring a specific user account. Access to repositories and projects is done via encrypted SSH keys.
Visibility of pull requests
The pull request inbox has always provided easy access to pull requests awaiting review. The inbox now displays the pull requests that a user has created, as well as those which are awaiting review. You can easily switch between these two lists from within the inbox.
|Full Stash 2.9 Release Notes|
Stash supports the integration of best-practice branch-based development with each team's individual workflow. Stash 2.8 offers a customizable branching model, so that the work flows perfectly from branch creation through to merging. With deep integration with other Atlassian products, branching is fast and efficient.
Create branches from JIRA or Stash
You no longer need to spend time manually mapping a JIRA operation to a new branch created within Stash. You can now jump directly to Stash, thanks to the Create Branch link in the development section of a JIRA issue. Stash reads the action details from JIRA and automatically suggests settings for the new branch. New branches can also be created directly in Stash using the shortcuts in the Actions menu.
Organize and standardize branches
Customizable branching models make it easy to achieve consistency in team development workflows. You can set naming conventions in the branching model for common development tasks, such as bug fixes, new features or hot fixes. This allows automatic cascading merges between release branches and reduces the need for manual maintenance.
Central overview of all branches
Stash now provides a list of all branches within a repository. Users can easily access branch details and see pending work that needs to be merged. You can perform tasks such as deleting branches or creating pull requests directly from this page.
|Full Stash 2.8 Release Notes|
Initiate JIRA issue transitions from within Stash
Stash 2.7 provides developers with a way to transition linked JIRA issues. For example, when you create a pull request, you may want to transition the issue directly into a review. Stash follows the transitions in JIRA workflows, reducing the number of annoying application changes.
Link to JIRA issues in comments and pull requests
By using Markdown in comments and issue descriptions in Stash, JIRA issues can be automatically linked using their issue keys. Stash displays the details of the issue, and allows for issue transitions (just as with all other issue links within Stash).
Connect Stash with multiple JIRA instances
Many companies and development teams work with multiple JIRA instances. Stash can now be connected to all existing instances. Enterprise teams especially benefit from this update.
|Full Stash 2.7 Release Notes|
Automatic fork synchronization
Stash 2.6 introduces a simple and efficient way to synchronize forks: If fork synchronization is enabled for a forked repository, it is automatically updated when changes are made to the original repository. When this occurs, all branches are updated with the same commits as the upstream repository. When conflicts occur, Stash steps you through the process to reach a resolution. Development on a fork is now identical to development within the original repository. Whenever someone pushes or merges a pull request, the changes are duplicated within seconds on the fork.
Stash 2.6 provides audit logs, recording the activity within repositories and all changes at the project and system levels. The audit system provides administrators with transparency and visibility of how the repositories are used, where and when authorized (and unauthorized) changes occur, and where activities are not compliant.
Repository quick search
You can jump to specific repositories in seconds with the repository quick search. You only need to input a small part of a repository's name for Stash to dynamically display matching repositories.
Users can navigate between Stash and other tools directly from the Stash header. This header can be configured to include any frequently used internal or external applications.
|Full Stash 2.6 Release Notes|
Public Access allows anonymous (unauthenticated) users to browse through specific repositories or entire Stash projects. Anonymous users can view the source code in a repository and clone the repository. Logged-in users have read access to publicly accessible repositories so they can fork and create pull requests. Public access does not allow you to change the source code in any way. Public access to repositories and projects can be separately configured.
Change destination branch in an active pull request
You can now change the destination branch in an active pull request. If you set the wrong destination branch when creating the pull request, you don't have to delete it and create a new pull request.
More context in diffs
You can now see more lines of code in the diffs for pull requests and commits in Stash. Click on the grey bars to see more context, including up to the entire file. When more context is available, grey bars are displayed at the top or bottom of the diff.
|Full Stash 2.5 Release Notes|
Collaborative development with forks
Forks in Stash provide developers with a workflow to add code to a repository where they don't have write access, bringing a new level of control and flexibility into the development process. Clicking on a repository's fork button creates a copy that is tracked by Stash and modified independently from the original repository, protecting the original against unwanted changes or errors. Developers can fork a repository into any project in Stash where they have administrator access. Developers can also create personal forks, and provide access to others by setting appropriate access rights. Pull requests make it easy to merge changes between forks.
Make changes via pull requests
Changes in the forked repository do not affect the main branch. As soon as the development on a fork is finished, it can be merged to the original repository via the pull request. Stash and pull requests make merging such changes easy. Developers now have the ability to discuss and review changes before they become part of the main codebase. Changes are merged from the fork to the original repository based on the pull request settings and original branch permissions.
You can create a personal repository that is unrelated to other projects in Stash 2.4. This provides developers with the freedom to drive innovation and store changes in their private workspaces, develop bug fixes for projects where they are not a member, or add features to common code maintained by a small group within the organization. These personal repositories can be public or private. Repository permissions allow developers to collaborate with other users and groups.
Updated user profiles
The introduction of personal repositories and forks requires a place where this information is summarized. The Stash team has updated user profiles to include this information.
In earlier versions of Stash, there were two categories of permissions: global permissions and project permissions. Stash 2.0 extended this by introducing branch permissions. Stash 2.4 offers another level of control with repository permissions.
|Full Stash 2.4 Release Notes|
When code is finally integrated into the target branch, it is often useful to be able to delete the feature or hot fix branch. Stash offers the option of deleting the development branch when a pull request is merged, unless it is a default repository branch, provided that the user has permission to delete branches, and there are no other open pull requests referring to this branch.
Git submodule recognition
Submodules support the integration of external Git repositories within the directory structure of your own repository. This allows for the integration of external codebases, such as shared libraries, that are updated independently of the main project.
Single sign-on with Crowd
Stash now supports single sign-on (SSO) with Crowd.
|Full Stash 2.3 Release Notes|
Git repository hooks
Git hooks allow you to customize your development team's workflow. Administrators can enable and configure hooks for each repository from within Stash, without having to install them on the file-system.
API for hook integration
Developers can now easily write their own hooks. Stash handles the persistence, packaging and per-repository configuration for your hooks, allowing you to extend Stash to meet your needs.
Merge checks for pull requests
To help customize your workflow, you can now set checks to control when a pull request can be merged.
|Full Stash 2.2 Release Notes|
Pull request integration with JIRA
Pull requests are now tightly integrated with JIRA, and operation details are easily visible. You can see the status of an issue, the assignee and the description without leaving Stash.
Build status API
The build status API allows build servers, such as Bamboo and Jenkins, to publish build details to the pull request's overview. This gives developers an overview of whether the pull request is ready to merge or not.
Projects are easily identified from the dashboard by their project avatars. Stash provides many template icons and allows you to use custom avatars.
Inbox for pull requests
This globally available inbox lists all pull requests, across all projects and repositories, that are waiting for the user to process them.
|Full Stash 2.1 Release Notes|
Git allows developers to freely create, merge and delete branches. In Stash 2.0 you can assign branch permissions and enforce a controlled process. "Write" permissions for individuals and groups ensure that stable branches remain stable, and development branches encourage collaboration.
You can include team members in discussions easily with @mentions.Type the @ sign, followed by the name of the user into a comment, and they will automatically receive a notification stating that they were mentioned in a pull request discussion.
Markdown support in comments
The ability to note context and important points is important when discussing code changes in writing. Stash now does this by allowing Markdown in comments.
|Full Stash 2.0 Release Notes|
Stash 1.3 now supports pull requests.
An overview captures all the discussions around a pull request. You can comment on diffs, new commits to a branch, or reply to comments.
Diffs for changed files
Diffs for a pull request highlight the changes that would result from the merge. The diff tree shows all modified files and you can click on any file to see what has been added, deleted or modified.
Stash now automatically updates the Commits tab on a pull request, so you can see exactly which commits will be merged.
When someone adds you as a reviewer, comments on your pull request, or merges your changes, Stash sends you an email notification.
|Full Stash 1.3 Release Notes|
Stash supports all popular databases: MySQL, Oracle, PostgreSQL and Microsoft SQL Server.
Switching between the embedded Stash database and your organization's infrastructure is easy. If the infrastructure changes, migration is painless.
Stash has introduced a file search to help you find any file in your repository, without needing to check out the source. You can filter by path, CamelCase, and file extension.
Merges can be faded out in the commit list to make it easier to see important details.
|Full Stash 1.2 Release Notes|
Stash now supports SSH in addition to HTTPS. Developers can manage their own SSH keys, and add as many as they like. Stash administrators can grant or revoke the SSH keys of any user.
Stash now provides developers a quick way to access recently viewed repositories with a new list in the header. New keyboard shortcuts allow you to work more efficiently without a mouse.
Stash has introduced a new interface to manage permissions on both global and project levels.
|Full Stash 1.1 Release Notes|
Browse your source code and history
This initial Stash version allows you to track commits to the repositories you're involved with: You can see exactly what was changed in the source code, navigate through repositories and view annotated changes at any time.
Support for enterprise requirements
Stash doesn't force you to use a pre-packaged appliance and give up control. Windows, Linux and MacOS X can all run Stash smoothly, thanks to LDAP and Crowd support, and JIRA integration, so Stash is ready to meet your enterprise requirements.
Stash tracks all issues associated with commits. Users can navigate straight to the JIRA issue linked to the commit, and all code changes related to an issue are integrated and displayed within JIRA.
|Full Stash 1.0 Release Notes|