Anonymous CVS access is available again, but on a different system than before. In addition to the anonymous CVS repository, there is also and an rsync server at cvs.apache.org. Try rsync cvs.apache.org:: to get a listing of the modules. rsync -avz cvs.apache.org::module-name local-directory-name to grab or update a local copy of the "module-name" sources. ====================================================================== HOW TO USE ANONCVS ====================================================================== Developers with commit access to the Apache source tree normally use CVS to keep their local copies of the source tree up to date automatically. This is a very useful ability that also allows for getting change history of files, diffs between arbitrary versions, etc. This is also the method used to commit changes to the source tree. For those who do not have commit access to the source tree, anoncvs offers an alternative way to do most of this using a copy of the CVS repository. The big difference is, of course, that you can't commit changes using anoncvs. The first step in using anoncvs is setting your CVSROOT environment variable. This tells CVS to what server it should connect. There are currently two, and the only available method to access these anoncvs servers is pserver; you need a reasonably recent CVS client to use it. An example of setting it from a Bourne shell: user@host:~$ CVSROOT=:pserver:anoncvs@cvs.apache.org:/home/cvspublic user@host:~$ export CVSROOT It is very important that you do not put a trailing "/" on the value of CVSROOT. The two anoncvs servers currently available are: :pserver:anoncvs@cvs.apache.org:/home/cvspublic and :pserver:anoncvs@CVS.Sourcery.Org:/cvs/apache Choose one of these values for your setting of CVSROOT. Once you have set your CVSROOT, you need to log in: user@host:~$ cvs login (Logging in to anoncvs@cvs.apache.org:/home/cvspublic) CVS password: The password is "anoncvs" (without the quotation marks) for both servers. To check out the current development tree: user@host:~$ cvs checkout httpd-2.0 cvs server: Updating httpd-2.0 U httpd-2.0/ABOUT_APACHE U httpd-2.0/Announcement U httpd-2.0/Apache.dsp [...] U httpd-2.0/test/test_select.c U httpd-2.0/test/time-sem.c U httpd-2.0/test/zb.c user@host:~$ ls httpd-2.0 ABOUT_APACHE InstallBin.dsp emacs-style Announcement Makefile.in hints.m4 Apache.dsp Makefile.win include Apache.dsw STATUS modules ApacheCore.def acinclude.m4 os ApacheCore.dsp build server ApacheCoreDll.dsp buildconf srclib CHANGES configure.in support CVS docs test user@host:~$ cd httpd-2.0/srclib user@host:~/httpd-2.0/srclib$ cvs checkout apr U apr/APRDesign U apr/APRVARS.in U apr/Makefile.in [...] U apr/user/unix/.cvsignore U apr/user/unix/Makefile.in U apr/user/unix/homedir.c user@host:~/httpd-2.0/srclib$ cvs checkout apr-util U apr-util/.cvsignore U apr-util/Makefile.in U apr-util/STATUS [...] U apr-util/test/.cvsignore U apr-util/test/Makefile.in U apr-util/test/testdbm.c To checkout the stable release tree (version 1.3): user@host:~$ cvs checkout apache-1.3 After 1.3a1, there was a source tree reorganization which resulted in the tree being split into apache-1.2 and apache-1.3. apache-1.2 is everything from before the reorganization, apache-1.3 is from after. apache-1.3 still retains the change histories of the files, however since they are in different locations you can not build an apache-1.3 tree from before the reorganization. The current development tree (httpd-2.0) was largely restructured and repopulated, and the layout is still in a bit of flux. To update your local tree to the latest version: user@host:~$ cvs update -dP apache-1.3 or user@host:~/apache-1.3/$ cvs update -dP . etc. P core/buff.c P core/conf.h RCS file: /home/cvs/apache-1.3/src/core/http_core.c,v retrieving revision 1.109 retrieving revision 1.110 Merging differences between 1.109 and 1.110 into http_core.c M core/http_core.c The P means that the local copy was patched to update it to the current version. The M means that your local copy was modified, but that the changes were merged into your copy successfully. If you see a C that means that there was a conflict in merging the changes and that you need to review the file manually (hint: search for >>>> in the file) to merge the changes. To obtain a diff of changes between your checked out copy and the source tree at the time you checked it out: user@host:~$ cvs diff -u apache-1.3 To obtain a diff against the current source tree, be sure to do an update before the diff. The idea of having an anoncvs server is to make it much easier for people interested in doing development to have access to the CVS tree so they can submit patches against the current source tree and can keep their patched version up to date without having to manually merge their patches all the time.