Back to HOWTOs

Setting Up CVS on CSIL Accounts at UIUC

Background

The goal is to set up a CVS repository on UIUC's CSIL machines for collaboration (e.g., for a class project). These instructions assume that all users have CSIL accounts. The commands given are using the C shell, so translate appropriately if you're using bash or some other shell.

Disclaimer: I did this in Fall 2003, so it is possible that this is completely out of date and no longer works.

Related Pages

HOWTO

  • Setting Up the Repository
    1. Choose one user to maintain the repository in their home directory. For illustration, let their user ID be user1.
    2. Create the repository directory:
      mkdir ~user1/CVS
    3. All members should the following line add to their .cshrc file:
      setenv CVSROOT ~user1/CVS
    4. Initialize the repository:
      cvs init
    5. Create a project. Assume the files we want in this project are in ~user1/497proj:
      cd ~user1/497proj;
      cvs import 497proj group497 initial;
      The import command places everything in the current directory into a project named 497proj. The group497 is the manufacturer and really isn't important. The initial is the tag. Tags are used to refer to different releases of a project and probably aren't important for a semester project.
    6. Give your group members access to the directories. This uses Solaris' Access Control List (ACL), so only works on Solaris CSIL machines. Assume the members user IDs are user2 and user3.
      setfacl -m user:user2:--x /home/student/user1;
      setfacl -m user:user3:--x /home/student/user1;
      setfacl -m mask:--x /home/student/user1;

      setfacl -m user:user2:rwx /home/student/user1/CVS;
      setfacl -m user:user3:rwx /home/student/user1/CVS;
      setfacl -m mask:rwx /home/student/user1/CVS;

      setfacl -m user:user2:rwx /home/student/user1/CVS/497proj;
      setfacl -m user:user3:rwx /home/student/user1/CVS/497proj;
      setfacl -m mask:rwx /home/student/user1/CVS/497proj;
      This is the configuration that worked for us, you might be able to skip the second or third set of setfacl commands and still give your group rw privileges.
    7. Now everyone in the group should be use CVS on the project. There's tutorials out there, but a typical session could be something like:
      cvs co 497proj;
      cd 497proj;
      ... Do some work, create some files ...
      cvs add new_file;
      cvs update;
      cvs commit;
      cd ..;
      cvs release -d 497proj;
    8. Remote Access:
    9. Now, if you want to work on something other than a CSIL machine, here's a way I found to get remote access to the CSIL repository. This assumes CVS is installed on your remote machine and it is running Linux or Unix.
      1. On a CSIL machine, change your .cshrc line that says:
        if (! $?prompt) exit
        to be:
        if (! $?prompt) then
        setenv PATH "${PATH}:/usr/dcs/software/supported/bin"
        exit
        endif
        This adds the CSIL path for the cvs command to your non-interactive logins.
      2. On your remote machine, add to your .cshrc:
        setenv CVS_RSH "ssh"
        To make your remote logins secure.
      3. On your remote machine, add to you .cshrc:
        alias cvscsil 'cvs -d :ext:username@csil-suna15.cs.uiuc.edu:/home/student/user1/CVS'
        Of course, username is your CSIL login. The suna15 part of the string can be replaced with your personal favorite CSIL Sun machine. The /home/student/user1/CVS part of the string should refer to the group's CVSROOT on CSIL machines.
      4. Now, you should be able to use CVS remotely, just like your would locally (except you'll have to type in your CSIL password to execute commands).
        cvscsil co 497proj;
        cvscsil release -d 497proj;