CVS Performance

cvs, performance

Solution

CVS will get slower over time through repeated use.

- When you check-out the whole project, the server will need to create every directory (even if you've since removed it - purging directories after checkout hides this from you).

- When you check-out, every file is opened and examined, this can be very slow if you have hundreds/thousands of files.

- Things get even worse if you are not trying to get out the HEAD of the trunk as the contents need to be reconstructed prior to sending it to the client.

If after all of that, you want to improve performance of shifting the data between the server and the client, then you can (depending upon your content type) use the -z option for compressing. I find -z6 to be best, but depending upon the nature of your files, you may want more/less compressing.

-z GZIPLEVEL

Sets the compression level on communications with the server. The argument GZIPLEVEL must be a number from 1 to 9. Level 1 is minimal compression (very fast, but doesn't compress much); Level 9 is highest compression (uses a lot of CPU time, but sure does squeeze the data). Level 9 is only useful on very slow network connections. Most people find levels between 3 and 5 to be most beneficial.

A space between -z and its argument is optional.

Problem

I have huge projects on a CVS repository, and I'm looking for ways to improve its performance. Would CVS compression help it? And what about encryption, does it degrade the speed? Thanks!

Original source