CVS over SSH

Instead of connecting to a pserver CVS can be tunnelled through SSH to protect the versioned data.

NOTE: This note assumes that you own a SSH login on the machine that hosts the repository.

CVS_RSH="ssh" cvs -d :ext:USER@HOST:PATH -z9 checkout MODULE

NOTE: Please be aware that not all versions of CVS are interoperable, eg. client version 1.11 and server version 1.11.11 will not work together.

Unfortunately CVS is not as flexible as RSync (see RSync over SSH) because the content of CVS_RSH must be a single command without any arguments. To work around that restriction you need to create a script that wraps the desired command line arguments:

#!/bin/sh
ssh -p 12345 $*

Instead of using such a wrapper script you can also add an appropriate entry to your SSH Config.

Feedback is always welcome! If you'd like to get in touch with me concerning the contents of this article, please use Twitter.