I'm running SourceTree 3.4.10 on Win11, and am having trouble with the internal diff on a mercurial repo of mine. These started roughly at the same time as me moving the origin repo from an old Ubuntu machine to a newer one (the latter having Ubuntu 22.04 LTS and hg version 6.1.1), and with me switching to SourceTree v3.4.10. I am uncertain if the problem I have is related to this or not.
The File Status view (correctly) shows a number of pending files and folders, but clicking on any modified file in a subfolder refuses to show a diff in the preview. To be clear: the diff works as expected on a file in the root of the repository but not for files in subfolders (unless they are added, in which case the whole file is shown in the diff view as per normal).
The modified files are small, and only contain a single changed line (verified with an external diff tool, and through the SourceTree Process Viewer which appears functionally identical for files that work in the root of the repo).
Things I have tried:
- Remove the bookmark and re-add the repo
- Reclone the repo from origin
- Attempted to switch to System hg (which refuses to work)
- Rename the embedded hg folder trying to force the use of the system one (doesn't work)
- Reinstall SourceTree, v3.4.10 and v3.4.9
There are no unusual characters or spaces in any of the folders in the path to the file.
The only thing I could possibly think of is that the pending files list shows the folders with windows-style backslashes, while the output from the hg diff command has it with forward slashes. I honestly don't remember if this was different when SourceTree worked fine.
I can commit and push the changes, but not having access to the diff is a huge deal-breaker and if this can't be resolved I will have to find a different solution. It's a major hassle to have to use an external diff for every file.
Another possibly related issue is that I can no longer check the "Push changes immediately to default". It persists to be disabled regardless of what I do, but setting the global option for the same thing does work for some reason.
Any suggestions as to what I could try to restore the diff view would be greatly appreciated.