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
4,361,185
Community Members
 
Community Events
168
Community Groups

Diff view in Pull requests shows incorrect and misleading information

Edited

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.

 

feat-master.jpgmaster-feat.jpg

2 answers

Issue was resolved, thanks for the explanation Atlassians.

for info: a blog post with a nice explanation.

https://developer.atlassian.com/blog/2015/01/a-better-pull-request/

TL;DR

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

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,

Ana

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.




Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Bitbucket

Git push size limits are coming to Bitbucket Cloud starting April 4th, 2022

Beginning on April 4th, we will be implementing push limits. This means that your push cannot be completed if it is over 3.5 GB. If you do attempt to complete a push that is over 3.5 GB, it will fail...

3,493 views 3 10
Read article

Atlassian Community Events