Reputation: 2659
How do I improve Subversion client update performance? It appears to be disk bound on the client.
Details:
I'm especially interested in answers besides getting a faster disk (especially configuration changes).
Updates from some of the suggestions:
Upvotes: 11
Views: 3600
Reputation: 35706
Upgrade to svn 1.7
From Discussion of Slow Performance of SVN Update:
The update process in svn 1.6 goes something like this:
- search the entire working copy, to see what's there at the moment, and locking it so no one changes the answer during the next steps
- tell that to the server
- receive from the server whatever new stuff you need, applying the changes to the files as you go
- recurse over the entire working copy again, unlocking it
If there are many directories and files, steps 1 and 4 can take up a lot of time. This would be consistent with your observation of long delays with no network traffic.
Working copy format was changed in svn 1.7. Now all meta information is stored in SQLite database in root folder of working copy and there is no need to perform steps 1 and 4 any more which consumed most of the time durring svn update
.
Upvotes: 0
Reputation: 21
I experience exatly the same thing. Recently replaced Perforce with svn, but if we cannot overcome the performance problems on Windows me must consider another tool. Using svn 1.6.6, Win XP and Vista clients. RedHat server. My observations matches yours:
Complementary info More than 3 times faster operations on:
Upvotes: 2
Reputation: 11
Try svn client version 1.5.. It helped me on my Vista laptop. Versions 1.6. are extremely slow.
Upvotes: 1
Reputation: 356
Nobody seems to be pointing out the one reason that I often consider a design flaw. Subversion creates a second "pristine" copy of the checkout for offline operations. If you're checking out 4G of files, it's actually writing 8G to disk.
Compare a checkout to an export. That will show you the massive difference when writing those second copies.
There's nothing you can do about that.
Upvotes: 0
Reputation: 41
Do you run a virus checker that uses on-access scanning? That can really make it crawl. If so, turn it off and see if that helps. Most scanners will have a way to exclude specific directories if that helps.
Upvotes: 0
Reputation: 14853
Do you need every bit of the repository on your working copy? If you truly only care about particular portions of the tree, look into Subversion's Sparse Directories (a.k.a. "Sparse Checkouts") feature. It allows you to manipulate your working copy so it only contains those directories of interest.
Just as an example, you might use this to prune documentation, installer-related files, etc. Depending on what you truly need on your local machine, embracing this approach could make a serious dent in your wait times.
Upvotes: 1
Reputation: 10687
Are you using TortoiseSVN? If so, the Icon Overlays do slow down operations. If you go to TortoiseSVN Settings/Icon Overlays there are several settings you can tweak to control the level to which you want to use the Overlays, including turning them off completely. See if that affects your performance.
Upvotes: 0
Reputation: 10278
This is more likely to be your network and the amount of data moved as well as your client. Are you using Tortoise? I find it to be a bit slow myself when moving that much data!
Upvotes: 0