I watched this thread, but it seems to be focused on Windows 7 and not apply to me
I've always found SourceTree to be very slow. Lately though, it's gotten out of hand. Especially since native git and GitX is orders of magnitude faster. What I mean by that is that the UI freezes a lot (I get the spinning bathing ball for many seconds). For instance, this happen when I click a file in the "Unstaged" area, so it's added to the "Staged" area. Now I have to wait a couple of seconds before I can click on a file in the "Unstaged" area again. Also just scrolling in the "Unstaged" area is very slow.
Some more information
This is really painful. Any way I can help out by sending dumps/more information?
I found a solution working for me:
I realized that SourceTree used the embedded git with version 2.1. I installed via brew git 2.3 and switched sourcetree to using my brew-git.
Tada: Now SourceTree is fast, again.
Another person here for whom this didn't work. Updated to the latest in brew and ran `brew link git` to get it to be the system defauld and still no effect on my spinning beachball outcomes on macOS.
For reference, my performance problems are all related to viewing diffs in history mode. Clicking on certain diffs just drives the app totally insane and it spins out for 30-60 seconds.
Thank you! I ended up just getting a new MacBook after which I was finally able to switch back from another app.
When I ran `git fsck` on my main repos there were TONS of output though! So maybe that was a big part of of my slowdown that made me move away from ST.
Recommend other long-haulers try this!
I updated my git via brew, from 2.17.2 to 2.19.1, and did the Use System Git thing, but was still SLOW!
Then, I realize that I didn't include some files to my gitignore, SO, SourceTree was going trough all my package-lock.json! And of course thousands and thousands of lines, seems to overload sourcetree when trying to identify the changes!,
Ignoring those files was the solution for me.
Sourcetree should avoid making diff everytime on package-lock.json.
To avoid it but still include it in your repo, go to Preferences > Diff > Ignore File Patterns and add ", package-json.lock"
Source will ignore it except when commiting, which makes Sourcetree useable again, thanks to Mark Wylie.
It's a shame that SourceTree still has so much perf issues, easly fixable... But I surely won't do better so I'll keep my mouth shut down :*
Told SourceTree to use local git version, restart SourceTree and nothing has changed. Then 2 minutes later it was slightly faster, and then again slow, but it's a bit less frequent.
It seems to me that SourceTree want to rescan the whole repo every time you click on something.
Mine seems to be working now on my Mac. I've been seeing significant performance issues with SourceTree as well. Tried many things (including suggestions here) and it continued to be very slow.
I finally changed the view from 'log' to 'file status' and then back again and now it's speedy again. IU believe the UI might have a memory leak that gets reset upon view change(I know, doesn't make immediate sense). I'll post updates if things change.