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

Tevye Krynski December 14, 2011

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

0 votes
Answer accepted
stevestreeting
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
December 15, 2011

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.

0 votes
ErikM January 9, 2012

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.

stevestreeting
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 9, 2012

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.

0 votes
ErikM January 9, 2012
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

stevestreeting
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 9, 2012

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.

0 votes
ErikM January 9, 2012

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.

stevestreeting
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 9, 2012

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.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events