Appendix D. Using CVS with an OpenACS Site

By Joel Aufrecht

OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

Add the Service to CVS - OPTIONAL. These steps take an existing OpenACS directory and add it to a CVS repository.

  1. Create and set permissions on a subdirectory in the local cvs repository.

    [root root]# mkdir /cvsroot/service0
    [root root]# chown service0.web /cvsroot/service0
    [root root]#
    mkdir /cvsroot/service0
    chown service0.web /cvsroot/service0
  2. Add the repository location to the user environment.

    [root root]# su - service0
    [service0 service0]$ emacs .bashrc

    Put this string into /home/service0/.bashrc:

    export CVSROOT=/cvsroot
    [service0 service0]$ exit
    logout
    
    [root root]#
  3. Import all files into cvs. In order to work on files with source control, the files must be checked out from cvs. So we will import, move aside, and then check out all of the files. In the cvs import command, service0 refers to the cvs repository to use; it uses the CVSROOT plus this string, i.e. /cvsroot/service0. "OpenACS" is the vendor tag, and "" is the release tag. These tags will be useful in upgrading and branching. -m sets the version comment.

    [root root]# su - service0
    [service0 service0]$ cd /web/service0
    [service0 service0]$ cvs import -m "initial install" service0 OpenACS 
    N service0/license.txt
    N service0/readme.txt
    (many lines omitted)
    N service0/www/SYSTEM/flush-memoized-statement.tcl
    
    No conflicts created by this import
    
    [service0 service0]$
    su - service0
    cd /web/service0
    cvs import -m "initial install" service0 OpenACS 

    Move the original directory to a temporary location, and check out the cvs repository in its place. If the service starts correctly, come back and remove the temporary copy of the uploaded files.

    [service0 service0]$ cd ..
    [service0 web]$ mv service0 service0.orig
    [service0 web]$ cvs checkout service0
    cvs checkout: Updating service0
    U service0/license.txt
    (many lines omitted)
    U service0/www/SYSTEM/dbtest.tcl
    U service0/www/SYSTEM/flush-memoized-statement.tcl
    [service0 web]$ exit
    logout
    
    [root web]#
    cd ..
    mv service0 service0.orig
    cvs checkout service0
    exit
View comments on this page at openacs.org