Adapted from the d1x cvs howto <http://d1x.warpcore.org/cvshowto.txt>
by Bradley Bell <bradleyb@u.washington.edu>

A quick howto on accessing the d2x source with CVS.

0) if you are using windows, or some other non unix os, and the standard
  command line cvs client, you will need to set your home directory.
  set home=c:\home\
  or something like that.

1) cd <your source dir>

2) Log in to the cvs server:
   cvs -d :pserver:anonymous@cvs.icculus.org:/cvs/cvsroot login
   (password is "anonymous").  You can also try it this way:
   cvs -d :pserver:anonymous:anonymous@cvs.icculus.org:/cvs/cvsroot login

   Download the source code:
   cvs -z3 -d :pserver:anonymous@cvs.icculus.org:/cvs/cvsroot co d2x

  This will retrieve the source into <current dir>/d2x
  (note that this should only be done once.  After you already have the code,
  merely do a "cvs update -PAd" from the d2x dir to update to the latest code)

3) Make your changes and stuff.  (Test them too).

4) You will want to do a cvs update before commiting, to make sure your
  changes still work with any other changes that may have been commited while
  you were working.

5) If you have readonly access:
  If you have only modified existing files, this should generate a usable diff:
  cvs -q diff -uRN . > mychanges.patch
  (hopefully you would use a more useful name, and remember to examine the
  result first, to make sure its ok.)
  If you have added files or directories, this won't be as useful since you
  can't use the 'cvs add' command to get cvs to recognize them.  In this case
  you should diff manually, or just zip up the new files.

  Once you have the patches/zips made, the best way to get them included is to
  post a message to the descent-source list with the files attached, or an url
  to the files. (see notes below)
  
-or- if you have full cvs access:

  cvs commit -m "summary of changes" <changed file(s)>
  or, if you want to commit all changes (in current, and sub dirs), just:
  cvs commit -m "summary of changes"
  (note, only the files that CVS knows about will be commited.  *.o/*.bak/etc
  will be ignored.  If you want to add a new file, use 'cvs add <file>')
  If you have made several unrelated changes, please commit each file seperatly
  with appropriate log messages, rather than blanketing them all in an
  ambiguous message.

6) Now that you have the source downloaded, you no longer need steps 1-2.
  Merely do a "cvs update" whenever you want to bring your tree up to the
  latest code, and continue from step 3.

Notes:
It is highly recommend that all developers subscribe to the descent-source
mailing list.  To signup, send an email to majordomo@warpcore.org with
"subscribe descent-source your@email.address" in the body.

If some of your changes are too close to other peoples, update or commit may
cause a "conflict".  You should probably talk with whoevers code it conflicts
with, unless the solution is obvious.

Of course, this is only a brief overview.  It is recommended you browse the CVS
documention as well. (info cvs, or equivilant).  If you have questions, or
think this howto could use some clarification, feel free to ask.

      A great book on cvs is available online:
      http://cvsbook.red-bean.com/cvsbook.html

Where to download CVS: http://www.cyclic.com/cyclic-pages/howget.html
