Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root


1 badge earned


Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!


Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.


Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!


Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
Community Members
Community Events
Community Groups

Diff view in Pull requests shows incorrect and misleading information


Bitbucket server version 5.5.3

The diff view when comparing two branched in depot sometimes gives false information that I can`t understand.


Here I list the two branches in question, the version number in each file, and the diff comparisons with the diff client in git bash.


Finally, I`ve added two images from the diff view in bitbucket that show a different value. The "to" value in the bitbucket diff view is correct, but the "from" value is incorrent which is misleading.

It looks as though the behaviour between git-diff and diff view in bitbucket is inconsistent.




branch 1: master

branch 2: feature/add-boostrap-3.3.7

Content of the file package.json at head of each branch.

$ git checkout feature/add-boostrap-3.3.7
Switched to branch 'feature/add-boostrap-3.3.7'
Your branch is up to date with 'origin/feature/add-boostrap-3.3.7'.

$ more package.json
"name": "tiweb.static.libs",
"version": "1.2.0",

$ git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.

$ more package.json
"name": "tiweb.static.libs",
"version": "1.1.2",

Preview of the diff in each direction

$ git diff feature/add-boostrap-3.3.7..master package.json
diff --git a/package.json b/package.json
index b5d51c5..b1dca15 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
"name": "tiweb.static.libs",
- "version": "1.2.0",
+ "version": "1.1.2",


$ git diff master..feature/add-boostrap-3.3.7 package.json
diff --git a/package.json b/package.json
index b1dca15..b5d51c5 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
"name": "tiweb.static.libs",
- "version": "1.1.2",
+ "version": "1.2.0",

So far, this all seems correct.

Image for the same diff in bitbucket

The images show values that don`t exist in either branch (but they are most likely previous values in the files in question.)  The nature of that value changes often so it`s hard to reproduce. but it seems to be something along the lines of two files changing the same value away from the common ancestor value. and then chanching back to a new value, that both files share. i.e. both branches change to the same value independently.

it`s important to  note that this error does not always happen. but when it does, it`s very confusing.



2 answers

Issue was resolved, thanks for the explanation Atlassians.

for info: a blog post with a nice explanation.


before you create a pull request, the diff view shows the diff from head of  source branch to the common ancestor ("...") when the PR is actually created, the diff view is head of source branch against head of target branch.

0 votes
Ana Retamal
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
Dec 19, 2017 • edited

Hi Patrick, we'll need further information to continue troubleshooting this issue so I've created a Support ticket for you. You'll receive an email notification shortly, please follow the instructions there.

Once you get it solved it would be great if you could come back to this post and share the solution with the rest of the Community, so it can help other users :)

Let us know if you have any questions!

Best regards,


I see the same issue. I'm told that this is, contrary to popular opinion, a feature, not a bug, and this is explanation that I received:why.png

I'm logically unable to connect to a realistic scenario where anyone would want to see this as the default path for comparing branches.

The compare tool gives you the option to select branches, but I don't think its really doing that (especially given the commit has it shows next to the destination branch); It seems like its actually comparing the destination branch as it was in the most recent merge point in the history of the source branch.

I feel like people typically care about now, and what's happening now; And they're concerned with how compatible a branch from right now is with the master of right now, not three months ago, or whatever.
I feel like people would find it forthright to find that commit, make a branch of it and  perform a diff, rather than the compare feature that we have now.

Like # people like this

I 100% agree wtih Ryan McCullough.  


This issue has caused us to think code was missing in envs where it had been deployed, causing us to rebase and do all sort of unnecessary triaging.  We've been doing a large migration and changing our branching model, and this has made that effort much worse.  To find out it was introduced as a way to improve peformance is really annoying.  I'd much rather my PR's take 5 minutes to merge than them to behave as they do now.  Furthermore, not showing conflicts in BB and instead just pointing out the conflict file names feels like a step backwards. 

Like Craig London likes this

Suggest an answer

Log in or Sign up to answer
AUG Leaders

Atlassian Community Events