We have the (experimental) evolve extension enabled for mercurial and generally are quite happy with Bitbucket's support for that mercurial extension. However, today I recognized an issue in context of pull requests.
A PR has been merged accidentally. We pruned the merge commit to undo the change. The first problem was, that the PR was still marked as "merged", although the merge commit is obsolete now. To work around this, we created a new PR. This new PR had, as intended, all commits on the topic branch included. The problem is, though, that when looking at the PR now, only commits done since the previous accidental merge are listed.
It looks like the PR diff is done using the commits on the topic branch and commits on any head on the default branch. This is wrong. Only the tip (most recent non-obsolete) head on default branch should be used to render the diff between topic branch and default.