My repository is 2-level. I have sub-repo and main repo (which only update .hgsubstate). There are 8 subrepos currently. Here's how it is very frustrating:
1) When I click on "Commit View" on main repository (The check button), it takes 10-20 seconds before it can list sub-repos that has been changed.
2) Let's say there are 3 sub-repos changed, when clicking "Commit" which bring up commit dialog, it give me a progress bar again which I don't know what the hell it check sub-repos for when it just check. This takes another 10-15 seconds before sub-repos display what should be commit correctly.
3) When I commit all subr-repos and close dialog so I can get back to main repos, it check again! That takes another 10-15 seconds yet again. So, for total, if I have 3 different changes sub-repos, it takes 2 minutes for me to commit (excluding time to type comments). If I'm unlucky, some other developer will already commit something else which will force me to merge-commit again. So, there's now another policy in my office, I would yell to everyone whenever I open SourceTree so they will know not to do anything until I'm done. So much for distributed source control.
By the way, all these repos are on SSD Intel 520 series. I'm using Mac OS X Lion 10.7.4 and SourceTree 1.4.4.
And this issue happens for all Mac machine in my office, which are Lion and Snow Leopard.
Compare to TortoiseHg for Windows, commit process takes less than a second.
I plan to go back to Windows because there's no good Hg client on Mac. Other likes MacHg doesn't support 2-level repos. And SourceTree is super slow and not refresh sub-repo correctly.
PS. I just download MacHg and uses it on existing repository, it can check the update almost instantly. So, I don't think it's anything to do with my repos.