Git pull and push dialog is really really slow, and unnecessary

I have a frequent need to run "git pull" or "git push", which uses the current branch. In terminal, it's incredibly fast. But in sourcetree, it pops up a dialog and takes about 10 seconds to request information on remote branches, after which it automatically selects the tracked branch and then I hit OK. Why is this dialog necessary? I understand that occasionally someone might want to push or pull somewhere else, but I am right-clicking my current branch and choosing "Pull origin/develop (tracked)". That can only mean one thing... so why spend 10 seconds refreshing all the other remote branches? I've gotten so weary of waiting that it is actually faster to open a terminal window, cd to my dev directory and type "git pull". Could you please make a preference to allow me to skip the dialog for pulls and pushes, and just use the current branch and the tracked remote, just as the git client does in terminal?

4 answers

1 accepted

This has been addressed here: https://jira.atlassian.com/browse/SRCTREE-723.

SourceTree 1.3 beta 2 is due out later today which includes this change.

I am running 1.3.0b3 and the problem still exists. Push and pull are extremly slow 2*10 seconds for a push, 10 before the dialog appears and 10 after.

Right-clicking on the local branch you want to pull / push and selecting the tracking branch option for pull/push will skip the remote retrieval of branches.

What server are you using? 20 seconds for a 'git remote show' (which is what the pull/push dialogs do to retrieve remote branches when you don't use the context option) is pretty poor.

The repository is at github and is quite fast
$ time git pull
Already up-to-date.
real	0m1.895s

But if I right click on the branch and choose pull from origin/branchname It takes 30 seconds of pause before the spinning bar appears and ends in this error message

git fetch origin 
git svn fetch 
[svn-remote "svn"] unknown
Completed with errors, see above

Looks like you still have a git-svn remote still set up, is that now defunct? If so, please try removing it. It sounds like one of your local branches is still set up to track the svn server.

That is the strange part, I don't, but sourcetree clearly believes so

grep svn .git/* .git/*/*

is empty

I found an empty directory called .git/svn though, which I deleted but sourcetree recreates it.

SourceTree doesn't create this folder itself, only git does that. However if this folder exists, then SourceTree uses that as an indicator that there is Subversion interop enabled on this repo and will call 'git svn' commands as appropriate, which perhaps might re-create it. So if you delete this folder manually, it's best to do so while SourceTree is closed to be sure.

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Published May 30, 2018 in Sourcetree

Tip from the team: configuring Git or Mercurial in Sourcetree

Supported Platforms macOS Windows To make using Sourcetree as simple yet powerful as possible we embed (bundle) dependencies such as Git, Git LFS, and Mercurial. We strive to keep these...

572 views 1 2
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you