I've had this problem for months, if not years, and usually just work around it. I don't know if it's confusing UX (aka user error) or a bug.
What happens
- I click on one of my branches in the left hand pane to see the graph view
- I click on one of the commits in the graph to see the diff
- I expect this to be the diff showing what changed in that particular commit vs its parent
- Sometimes it instead shows me the diff against a random different commit. I can't replicate it deliberately, but it's a fairly common occurrence (multiple times a week probably)
- The only workaround I've found is to toggle the "Show remote branches" tickbox (usually on) to refresh things and then it resumes behaving as I expect. Once it's "fixed" I believe it stays in this stage for the rest of my sourcetree session.
Is this an intentional feature? If so, how am I supposed to turn it off or change the SHA it does the diff from? Am I inadvertently getting into a different UI state? I can't see any options that relate to this, and nothing changed between the screenshots except for toggling off/on the "Show remote branches" option
Screenshots
The first screenshot below shows the 'correct' behaviour after toggling "Show remote branches". The second shows the unexpected diff against 50c952766. This SHA is not HEAD, or any branch pointer, or any other special commit. It's a random commit from my history.
Unexpected behaviour:
Correct behaviour: