All OpenACS code is available anonymously. To get code
anonymously, use the parameter
-d:pserver:anonymous@cvs.openacs.org:/cvsroot
immediately after cvs
in a cvs command to check out or export code.
If you are an OpenACS developer, you should check out code so
that you or any other developer can commit it. To do this, use
the parameter
-d:ext:cvs.openacs.org:/cvsroot
immediately after cvs
in
checkout commands. This will create a local checkout directory
that uses cvs.openacs.org but does not specify the user. By
default, it will use your local account name as the user, so if
you are logged in as "foobar" it will try to check out and
commit as if you had specified
:ext:foobar@cvs.openacs.org:/cvsroot
. The advantage of not specifying a user in the checkout command is that other users can work in the directory using their own accounts.
OpenACS.org supports non-anonymous cvs access only over ssh, so you
must have CVS_RSH=ssh
in your
environment. (Typically this is accomplished by putting
export CVS_RSH=ssh
into
~/.bash_profile
.). If your local
account name does not match your cvs.openacs.org account name, create a
file ~/.ssh/config
with an entry
like:
Host cvs.openacs.org User joel
With this setup, you will be asked for your password with each cvs command. To avoid this, set up ssh certificate authentication for your openacs account. (More information)
You may want to set some more default actions for CVS usage.
To do so, create the file
~/.cvsrc
with the contents:
cvs -z6
cvs -q
-z6
speeds up cvs access over the network quite a bit by enabling compressed
connection by default. -q
suppresses some verbose output from commands. For example, it makes the output of cvs up
much easier to read.
If you are actively developing a non-core package, you should work from the latest core release branch. Currently this is oacs-5-2. This ensures that you are working on top of a stable OpenACS core, but still allows you to commit feature changes to non-core packages. To check out all packages,
cvs -d :ext:cvs.openacs.org:/cvsroot co -r oacs-5-2 openacs-4
If you work in the directories created with this command, all of your cvs updates and commits will be confined to the oacs-5-2 branch. Your work will be merged back to HEAD for you with each release.
Because the entire openacs-4 directory is large, you may want to use only acs-core plus some specific modules. To do this, check out core first:
cvs -d:ext:cvs.openacs.org:/cvsroot -r oacs-5-2 checkout acs-core
Then add modules as needed:
cd /var/lib/aolserver/service0/packages
cvs up -d packagename
... where packagename is the name of the package you want. Visit the Package Inventory and Package maintainers and status for a list of available packages and their current state.
If you are actively developing packages in the OpenACS
Core, work from the HEAD branch. HEAD is used for active
development of the next version of core OpenACS. It may be very
buggy; it may not even install correctly. Do not use this branch for
development of non-core features unless your work depends on some
of the HEAD core work. To check out HEAD, omit the
-r
tag.
To check out HEAD for development, which requires an OpenACS developer account:
cvs -d:ext:cvs.openacs.org:/cvsroot checkout acs-core
To check out HEAD anonymously:
cvs -d:pserver:anonymous@cvs.openacs.org:/cvsroot checkout acs-core
.LRN consists of a given version openacs core, plus a set of
packages. These are collectively packages together to form a
distrubution of .LRN. F .LRN 2.0.0 sits on top of OpenACS 5.0.0.
.LRN also uses an OpenACS install.xml file during installation;
this file is distributed within the dotlrn package and must be
moved. To get a development checkout of .LRN in the subdirectory
dotlrn
:
cvs -d :pserver:anonymous@cvs.openacs.org:/cvsroot checkout -r oacs-5-2 acs-core
mv openacs-4 dotlrn
cd dotlrn/packages
cvs -d :pserver:anonymous@cvs.openacs.org:/cvsroot checkout -r oacs-5-2 dotlrn-all
mv dotlrn/install.xml ..
Once you have a checkout you can use some commands to track
what has changed since you checked out your copy. cvs -n update
does not change any files, but reports which changes have been updated or locally modified, or are not present in CVS.
To update your files, use cvs update
. This will merge changes from the repository with your local files. It has no effect on the cvs.openacs.org repository.