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
- Choose one user to maintain the repository in their home directory. For illustration, let their user ID be user1.
- Create the repository directory:
mkdir ~user1/CVS
- All members should the following line add to their .cshrc
file:
setenv CVSROOT ~user1/CVS
- Initialize the repository:
cvs init
- Create a project. Assume the files we want in this project are in
~user1/497proj:
cd ~user1/497proj;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.
cvs import 497proj group497 initial; - 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;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.
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; - 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;
- Remote Access: 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.
- On a CSIL machine, change your .cshrc line that says:
if (! $?prompt) exitto be:if (! $?prompt) thenThis adds the CSIL path for the cvs command to your non-interactive logins.
setenv PATH "${PATH}:/usr/dcs/software/supported/bin"
exit
endif
- On your remote machine, add to your .cshrc:
setenv CVS_RSH "ssh"To make your remote logins secure.
- 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.
- 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;
- Remote Access: 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.