<h1>Using CVS to access and update Moodle source code</h1>
<blockquote>
<p>CVS is the Concurrent Versioning System. It's a commonly used way of storing
source code because it keeps versions of all files so that nothing is ever
lost, and usage by different people is tracked. It also provides ways to merge
code if two or more people are working on the same file. All code and all
versions are stored on a central server (in the case of Moodle, at <atarget="_top"href="http://www.sf.net/">Sourceforge</a>).
</p>
<p>If you just want to access the current CVS version of Moodle with read-only access then
you don't need this page - just follow the simpler CVS instructions on the <atarget="_top"href="http://moodle.org/download">Moodle download page</a>.</p>
<p>To use <atarget="_top"href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/moodle/moodle/">Moodle's
CVS archive</a> (as a <atarget="_top"href="http://sourceforge.net/project/memberlist.php?group_id=30935">developer
with write access</a>), you first need to have an <ahref="http://sourceforge.net/account/register.php">account
on Sourceforge</a>. For the examples on this page, let's assume your username
is <strong><fontcolor="#990000">myusername</font></strong> and your password
is <strong><fontcolor="#990000">mypassword</font></strong>. Take special note of the
sourceforge instructions to <atarget="_top"href="http://sourceforge.net/docman/display_doc.php?docid=768&group_id=1#develhomedir">create your CVS home directory</a> - something you have to
do with every new account to "enable" it for CVS. Basically you just have to use ssh to interactively connect to cvs.sourceforge.net.</p>
<p>Once you have
a working Sourceforge account, contact <a
target="_top" href="http://moodle.org/user/view.php?id=1&course=1">Martin Dougiamas</a> so he can give you write access
to particular Moodle directories.</p>
<p>To avoid being prompted for <strong><fontcolor="#990000">mypassword</font></strong>
every time you run a CVS command, follow the <atarget="_top"href="http://sourceforge.net/account/editsshkeys.php">Sourceforge
directions for using authorized keys</a>. This step is optional, but it can
make your CVS experience a lot nicer.</p>
<p>With that done, you should have all the permissions you need, so you just
need to set up your machine and download the current sources so you can start
working on them. Below are instructions for Unix and Windows systems.</p>
<h2>1. Using CVS on Unix</h2>
<blockquote>
<p>Sourceforge CVS uses ssh as a transport layer for security, so you will
have to set this CVS_RSH environment variable in your Unix shell:</p>