Svn – Performance difference between subversion checkouts and exports

performancesvnweb-applications

Is there any performance difference between subversion checkouts and exports when running your webapplication?

We already implemented this in our deployment process, without measuring for differences (which feels bad. and is bad.).

Our intentions were:
a) dumping overhead (.svn folders and its contents) and
b) improving any directory traversing stuff

Do you have any experience with or measurements for this?

Best Answer

It'd be heavily application dependent. With applications I've deployed, it's been irrelevant, as there's absolutely no directory traversal of the application directory going on from within the applications. Some frameworks, particularly Rails, will do auto loading of files within the application and do directory traversal to discover those files, but typical Dir['**/**'] type affairs skip any "hidden" directories such as .svn and .git.

If, for some reason, your application or framework had need to traverse all files under the application folder and didn't ignore hidden directories, there might be some negligible effect, but it would be so application and situation specific that you'll struggle to seek much advice from a generalized answer.

All that said, if you have no reason to push changes back from deployment to the SVN server and you're using a multi directory rolling style deployment mechanism (that is, you export/check out to a new directory every time then update a symlink or similar) you might as well go over to using export. If you just svn update within a deployment directory each time, you might want to stick with it for efficiency's sake..