Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can an SVN checkout be multi-threaded?

I have a repo with 30k+ small files, and I can only access the server over the internet via https://. Checkout are very, very slow. On the order of hours. Internet connection speed is ~20Mbs and local machine is 3Ghz multi-core & 10k RPM HD.

(svn:// protocol is not an option, sadly.)

So my question:

Can svn do a multi-threaded parallel checkout of a working copy?

It looks like the svn checkout is going file-by-file in a sequential order. There is a minuscule delay between each file and I suppose that's the http request/reply and possibly my local filesystem's delays. (Perhaps a little server filesystem latency as well?)

Thanks

like image 904
nonot1 Avatar asked Nov 11 '10 22:11

nonot1


People also ask

How does SVN checkout work?

svn checkout checks out (retrieves) a working copy of the repository into the specified folder. If you don't have access to the repository, and there's not already a current copy of the source in the folder, you can't possibly do a build. If there is a current copy of the source there, it should include build.

What is checkout in subversion?

Advertisements. Subversion provides the checkout command to check out a working copy from a repository. Below command will create a new directory in the current working directory with the name project_repo.


1 Answers

I don't know of a command, but you could write a small Python (or the tool of your choice) script to help. "svn list" gives you the name of each subdirectory. You can then do a checkout of each subdirectory in the background so they happen in parallel. You may need to do this at the 2nd/3rd/whatever level deep depending on your directory structure and where all the tiny files reside.

I'm assuming you don't have 30K files in the same directory of course.

like image 129
Jeanne Boyarsky Avatar answered Sep 20 '22 17:09

Jeanne Boyarsky