If you're not a programmer, please don't do this. If you're not at least a little experienced with C, configure, and IMAP, please stick with the tarball releases at ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/.
To get to the repository, get a version of CVS with client-server support (anything remotely recent has this, I think) and do this:
cvs -d :pserver:email@example.com:/cvs login
(enter "anonymous" as the password)
cvs -d :pserver:firstname.lastname@example.org:/cvs co -d cyrus-imapd cyrus
(the first -d specifies the CVSROOT, in this case, our CVS server, and a path to the CVS repository; co says "check out", -d says "and stick it in the directory cyrus-imapd", and "cyrus" specifies the "cyrus" collection). The password is "anonymous".
You will need autoconf (v2.12) to build CVS from the repository because we don't keep the configure script in the repository, along with the usual tools to build Cyrus (a compiler, a Unix box, a network.)
Read access to the repository is availible to anyone via cvs.andrew.cmu.edu. Write access is availible to only a few people at CMU.
Please note that the version in the repository is not the version we are running. We have a seperate system that resembles version control for releases of software on the Andrew system, and sometimes changes don't get propigated back to CVS.
What is here is supposed to be stable. It's supposed to work, and compile, and not have amazingly broken changes that can't possibly work. But that may not be the case--and since you decided to use CVS, you shouldn't complain when something doesn't work. You should submit a patch.
There is no warranty on the Cyrus software. There is no warranty on anything in CVS, and even less of a guarantee of it working. (There. You've been warned.)
Please refer to Sending Feedback if you would like to submit a bug, feature request or (best of all) patch.
Thanks to Ryan Troll for putting the time in to make the CVS server work and actually documenting it.