Not an exhaustive benchmark by any means, but what I see…
Given a CVS repository accessible by the CVS “pserver” protocol on a company intranet, and a box gated via SSH to the intranet from the internet, which usage is most optimal? The CVS pserver protocol supports compression (i.e. “cvs -z3 co”). The SSH tunnel also supports compression (i.e. “ssh -a -C -L hosthere:2401:hostthere:2401 user@sshhost”). Is using compression on the SSH tunnel more or less efficient that using compression on the CVS protocol?
No compression on a large (many files, and many large files) checkout:
time cvs -d :pserver:preston.bannister@hosthere:/archive co xxx .... real 18m33.915s user 0m1.620s sys 0m4.492s
Compression on the SSH tunnel, no CVS compression:
time cvs -z0 -d :pserver:preston.bannister@hosthere:/archive co xxx .... real 8m22.575s user 0m1.676s sys 0m4.632s
No compression on the SSH tunnel, using CVS compression:
time cvs -z3 -d :pserver:preston.bannister@hosthere:/archive co asg .... real 8m35.703s user 0m4.544s sys 0m4.316s
Pretty close to a wash. I’d guess that applying compression to the SSH tunnel (when connecting across the internet to an intranet) is probably more useful in the general case. Since the specific case of applying compression the the CVS protocol generates no marked advantage, looks like the general case wins.
I took “cvs -z3” out of my .cvsrc file. :)