Tutorial on how to use the UF CVS repository ============================================ 0) How to create the UF Repository on nflorsrv.fnal.gov: Make a directory for the cvs repository: mkdir /home/cdf_uf/Repository Initialize it: cvs -d /home/cdf_uf/Repository init Change the group ownership: chgrp cdf_uf /home/cdf_uf/Repository Make it read/writeable for our group: chmod 775 /home/cdf_uf/Repository Make sure all subdirectories get the same group name by all users: chmod g+s /home/cdf_uf/Repository 1) How to set up CVSROOT to access the Repository I set up two aliases for this. The first is so I can switch back to the normal CDF repository to get CDF packages: alias cdfcvs "setenv CVSROOT :pserver:anonymous@cdfcvs.fnal.gov:/cdf/code/cdfcvs/run2" The other is to get our UF code. I have two versions. The one for nflorsrv, where the repository exists, is: alias ufcvs "setenv CVSROOT /home/cdf_uf/Repository" But on fcdfsgi2 (or any other external computer) I use: alias ufcvs "setenv CVSROOT $USER@nflorsrv:/home/cdf_uf/Repository" You will be prompted for your password when you use CVS on external machines, unless you issued a "kinit" and use the Kerberized cvs and ssh utilities. Now, these definitions go into your .cshrc file (or .login), and you type "ufcvs" to set the environment for the UF private repository, and "cdfcvs" to go back to using the CDF one. 2) How to import a directory of code into the Repository: Go to some directory which has code you want to add to a package in this repository: cd ~/temp Import this code (and all subdirectories) as package "junk" in the repository: cvs import junk acosta v0 (This labels the package as "junk", says "acosta" did it, and this is release "v0") 2) How to checkout/commit/update code from the Repository: Now go to some other directory to extract the "release" version of the code. (You should not use the same directory that you imported from, because it does not have the CVS directories with all the proper administration files). cd ~ cvs co junk This assumes that you defined the CVSROOT enviroment variable as above. If you did not, you can always explicitly set it by doing: cvs -d $USER@nflorsrv:/home/cdf_uf/Repository co junk A new directory is created called junk, and in it are all the files and directories that you imported. Now you can modify and update this code as you like: emacs file And then re-commit it to the repository cvs commit . (or whatever specific file you want to commit) You can update from other people modifying the code in the repository by doing: cvs update Once you have started a package, you don't have to do "cvs import" again. Instead, you add new files as "cvs add". Import is used just for creating a package. 3) Packages already started on nflorsrv cdfSim/tcl which contains: bbbar_pythia_3.15.0.tcl lq_pythia_3.15.0.tcl qcd_pythia_3.15.0.tcl JetProbMods/tcl which contains JPtest.tcl UFMods which contains: UFMods/UFMods: LQAna.hh README link_UFMods.mk UFMods/src: .refresh GNUmakefile LQAna.cc UFMods/test: GNUmakefile LQtest.cc LQtest.tcl link_all.mk This latter UFMods package is a place we can put all private analysis modules we create. I started one called LQAna that has MET and JetProbability in it. In the future it would be nice to include all our Root/PAW analysis scripts into the Repository as well and whatever else you want. I think CVS will be a good way to organize our code and make it available to the group, so I hope people start to use it. I am open to any suggestions you have on organizing the directories. 4) Help That should get you going! Let me know if I can help any more getting a Florida repository started and used. There in an online CVS help page here: www.loria.fr/~molli/cvs/doc/cvs_toc.html