Source tree painfully slow on mac
Asked by Staffan Eketorp:

I watched this thread, but it seems to be focused on Windows 7 and not apply to me

<https://answers.atlassian.com/questions/10413451/sourcetree-slow-in-windows-7-x64>...

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

* I'm on a 2014 MacBook Pro
* Using Yosemite
* I don't have a lot of unstaged files (right now maybe 10-20)
* I don't have a lot of pending files (right now maybe 20)
* I've set the binary diff limit to 0
* I do not use submodules
* I've tried both embedded git and system git
* Restarting seems to help a bit, but it's never really good

This is really painful. Any way I can help out by sending dumps/more information?


Answers:
author: Sebastian Gabbert
body: 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.

Steps:

* brew install git
* SourceTree -\> Preferences -\> GIT -\> Use Sytem Git -\> Select /usr/local/bin/git

comments: author: Anthony Fuentes
body: I did this, seems to be faster so far. I'll post an update in a few days to see if it stick. Thank you Sebastian.


author: Anthony Fuentes
body: Update: Changes did not help after all. Still experience the same sluggishness.


author: enlik
body: Thanks @Sebastian Gabbert, seems faster now


author: Jer Clarke
body: 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.


author: ctomczyk
body: I use Sourcetree version 2.7.6 (177) on MacOS High Sierra and can confirm that it's still works extremely slow. Every action takes ages. Switching to use internal git, as suggested in above messages, doesn't change anything.

comments: author: Danyal Aytekin
body: Same experience here, on Sierra. It's a sad fate for such a great tool.


author: Danyal Aytekin
body: An update, since maybe I should not only complain...

SourceTree is running snappily for me right now with this combination:

* macOS 10.14.1
* SourceTree 3.0.1 (205)
* System Git 2.17.2


author: roybrouwer
body: Did you already try to restart your Mac? My SourceTree is fast (with my system's git), but after some time it's getting slower and slower. When I restart my system (mostly after a about a week), it's fast again.


author: Jose Antonio Matute
body: It was an "old" git repository and a simple \`git fsck\` from the command line boost Sourcetree performance.

I hope it also works for you.

comments: author: jerclarke
body: 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!


author: Jaime Montero
body: 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.  

<br />

comments: author: QuentinNev
body: 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](https://jira.atlassian.com/browse/SRCTREE-4972?focusedCommentId=1847144&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-1847144 "Mark Wylie saves the world").

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 :\*


author: venriq
body: Going to**Preferences** \> **Diff** \> **Ignore File Patterns** and adding

```
, package-lock.json
```

Fixed the issue for me. Thanks, [@QuentinNev](/t5/user/viewprofilepage/user-id/1700910) and @JaimeMontero!

My question is, should this be the solution?


author: fireball_
body: [@venriq](/t5/user/viewprofilepage/user-id/1132101) you are the boss. THX.


author: QuentinNev
body: 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.


author: roybrouwer
body: Changing to the system git did the trick for me.

Thank you!


author: ernestorivero
body: Using the system git fixed the issue perfectly.

comments: author: ernestorivero
body: To anyone having a slow Sourcetree app in Mac, do the following:

1. Click on the Sourcetree menu.
2. Click on the Preferences... menu item.
3. Click on the Git tab.
4. Below, in the Git Version, click on the "Use System Git" button.
5. DONE.


author: ernestorivero
body: ![source-tree-git.png](https://community.atlassian.com/t5/image/serverpage/image-id/34721i60AE59CCC8602A74/image-size/large?v=v2&px=999 "source-tree-git.png")


author: ctomczyk
body: Switching to System Git, in my case 2.13.1, doesn't change anything on macOS High Sierra.


author: ernestorivero
body: Maybe the problem is with the Git version. Try updating it to the last one.


author: ctomczyk
body: Possibly. I'll upgrade the Git itself through brew and then we'll see.


author: ctomczyk
body: Upgraded git to 2.19.1 and use System Git (as I have set) seems now works better. I guess I'd need to work some time to justify performance improvements.


author: Mega Byzus
body: 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.

Mo

comments: author: Matt Lester
body: this worked for me, thanks for feeding back ;) atlassian, please fix!


author: Michael Nguyen
body: I've been having this issue quite a lot lately especially when I scroll down the commits scroll view. It'll chug for 0.5s every 10 or so commits I scroll down. It's extremely annoying.


author: Staffan Eketorp
body: Ok, now I've tried this for some time. And the problem is really not fixed by that. And not restarting either. I get a LOT of bathing ball time. 10 seconds is not uncommon. As a comparison running git status from command line takes 0.15s.


author: Staffan Eketorp
body: Thanks for the reply @Sebastian Gabbert. I think you're right. First it was even slower, but then I restarted Source Tree and now it's actually faster again. It seems something is fishy in ST as well though. Thanks for the advice!


author: Sebastian Gabbert
body: exactly the same here. Same Setup, same problems.

I've seen the spinning ball especially building the diff and staging large css-files for several seconds.


Tags: moderators