Viewing Large Diffs, Diffing Arbitrary Commits, and More with GitSense for Bitbucket Server

Now that GitSense for Bitbucket Server is available for download and because diffing plays a critical role in the software development lifecycle; we'll use this blog post, to quickly highlight some of the ways, GitSense can be used, to enhance the diffing experience in Bitbucket Server.

If you would like to install GitSense for Bitbucket Server, you can download both the GitSense Server and Bitbucket addon-on for free.  And if would like to play around with the add-on, you can do so at  If you are learning about GitSense for the first time, we recommend you read our previous blog posts, to learn more.

How GitSense Makes Diffing Better

  1. Viewing Large Diffs
  2. Diffing Arbitrary Commits
  3. Bulk Diffs Browsing
  4. Putting Diffs into Context

1. Viewing Large Diffs

If you have ever needed to review a large diff in Bitbucket, you'll recognize the following:

There is a way to increase the number of files to show, but it also comes with a disclaimer.  In Bitbucket's defence, you would also see this type of warning in GitLab and GitHub as well.  And that's because, they all rely on server-side logic, for rendering.

With GitSense, the rendering is done on the client-side, which means there is really no limit, to how many diffs it can handle.  If viewing large diffs, is a must have for you, your team, or your company; GitSense for Bitbucket Server, can help with that.

55,493 is the number of diffs in the tree.

2. Diffing Arbitrary Commits

Right now there is no easy way to diff arbitrary commits in Bitbucket Server.  In BSERV-2550, Atlassian suggests some workarounds, but for some, the workarounds are neither practical nor viable.  With GitSense, diffing arbitrary commits, is as easy, as it can get. 

3. Bulk Diffs Browsing

A common complaint that people often have, with browsing diffs via a tree, is it can be cumbersome.  Compared to the flat diffs layout that is offered by Bitbucket Cloud, GitHub and GitLab, this is understandable.  However, the problem with the flat layout, is it's not scalable.

To browse large diffs, a tree is a must, for organizing and navigating; but we also agree, a tree can slow you down, which is why GitSense supports bulk diffs browsing.  With bulk diffs browsing, you can quickly iterate through the diffs in a tree, without having to navigate the tree.  And if that was clear as mud, the following video should clear things up for you.

4. Putting Diffs into Context

When it comes to putting diffs into context, Bitbucket Server does a good job of this.  When viewing a diff in unified/inline mode, you can use Git blame, to see who last touched a diff line.  However, as useful as blame is, it isn't without its limitations.  Since blame is based on who touched a line last, it won't catch multiple contributors, to the same line.  And it can't be used, to tell you who deleted or renamed a file, as the screenshots below shows.

Blame can only show you what the file looked like, before if was deleted.
Blame can't be used at all, to see who renamed a file.

If you want to see who renamed, deleted or contributed to a file, you could iterate through all the commits in the diff, but there is a much better way.  With GitSense, seeing who did what and when, is usually just a click or two away.

So as you can see, with GitSense, diffing in Bitbucket Server, just got a whole lot better.  And if you want to try what was shown in this blog, you can play around with the GitSense add-on at

Well this brings us to end of this blog post and usual, we hope it was informative.  With GitSense, we are constantly thinking of different ways to increase developer productivity, so stay tuned for future blog posts.

Blog Posts

© 2016 SDE Solutions, Inc. All rights reserved.