next up previous
Next: Updating and Committing Files Up: Simple Project Management Using Previous: Viewing the History of

Setting Up Multiuser Access

For a group project, the first step is to decide which person in the group will use their account to host the repository. While the relative experience of the group members may play a part in this decision, available disk space is also an important consideration.

Once this decision has been made, assuming you are the elected user, you will need to create a directory in your account space specifically designated to be the CVS root directory (i.e. $HOME/cvsroot), and follow all the steps presented earlier in this document for initializing and establishing the structure of the repository.

When setting up a multiuser project, proper file and directory access permissions are of critical importance. The Solaris operating system which runs on the PCSE network allows files and directories to maintain Access Control Lists (ACLs) which provide much finer control over file and directory permissions than the standard ``chmod'' command.

Your partners on the project will need to be able to access the repository in your home directory; they will need read, write, and execute access to the parts pertinent to your project, read and execute access to the top-level repository directory and its CVSROOT administrative subdirectory, and execute permission for your home directory and any other directory which may be a parent or ancestor to the repository.

The series of commands required to set the ACLs on these directories will resemble the following:

setfacl -m user:jdoe:--x,user:jblow:--x,mask:--x $HOME
setfacl -m user:jdoe:r-x,user:jblow:r-x,mask:r-x $HOME/cvsroot
setfacl -m user:jdoe:r-x,user:jblow:r-x,mask:r-x $HOME/cvsroot/CVSROOT
setfacl -m user:jdoe:rwx,user:jblow:rwx,mask:rwx $HOME/cvsroot/class_proj

To check the ACLs for a file or directory, use the ``getfacl'' command with the file or directory name as an argument. Check the setfacl and getfacl man pages for more information.

As long as all the files in the repository are readable, there should be no need to tamper with the ACLs for those. If a user has write access to a directory, that user may modify the contents of that directory (by updating, adding, or removing files) regardless of the individual file permissions.

Once the permissions are set properly, your project partners should be able to check out a working copy of the repository by executing the cvs checkout command from within their own home directories:

cvs -d /home/student/mbland/cvsroot checkout class_proj

Once it has been established that your project team members can successfully checkout the source tree from the repository (located in your home directory), they may use all the CVS commands described above on the files particular to that source tree. They may also elect to define the $CVSROOT variable to contain the value ``/home/student/mbland/cvsroot'' (replacing ``mbland'' with your own username, of course) within their own login environment to keep from having to specify the repository path every time.


next up previous
Next: Updating and Committing Files Up: Simple Project Management Using Previous: Viewing the History of
Michael S. Bland
2000-11-22