|
This page tells you about how you can use the cvs system in the bioperl set up.
Index
Requirements
To use the CVS system you must have
Making a local copy for the first time
Obviously, you need to make sure you have cvs and ssh installed on your local
machine. Check out the links listed above.
To start a cvs local copy from scratch, move to a clean area where you expect
to see your working bioperl-live directories from, then go
prompt%cvs -d :ext:birney@bio.perl.org:/home/repository/bioperl checkout bioperl-live
(Obviously you'll substitute the birney for your own name)
This will build the bioperl-live tree for you from the CVS system with all the current .pm files
in it.
To check out the html tree go
prompt%cvs -d :ext:birney@bio.perl.org:/home/repository/bioperl checkout html
To check out only a portion of the html (or bioperl-live) tree you can do it easily, as
prompt%cvs -d :ext:birney@bio.perl.org:/home/repository/bioperl checkout html/UserInfo
html/UserInfo is a valid directory in the html tree (where in fact this page lives!)
The checkout process produces a copy of the directory structure as real read/write files and
an additional file in each directory called CVS. The CVS file contains the information about which
cvs repository this directory comes from and which files in the directory are part of the repository
(this way you can clutter you your local copy of the repository with temporary files and it is fine).
You work in your local copy as if it was the root copy. Once you have made all the changes you want to
make you go
cvs commit
which 'publishes' your changes back to the repository.
An example session
So, an example session (once you have set up your local copy) of an entire days/sessions work is
- Wake up, get a cup of coffee, cd into your local copy of the cvs directory and type
cvs update
which brings your local copy up to date with the repository
- Browse around any of the files that have changed (by other people) that you are interested in
- Do your work on the local copy.
- Make sure the local copy is in a sensible state, ie, it at least compiles
- publish your changes by going
cvs commit
- Drop a mail to perl-guts saying what you have done, and go to sleep ;)
The important thing about cvs is that if you
- Work in the cvs local copy as your primary development area
- use cvs commit and cvs update often
Then it works really well and it is freaky about how cvs coordinates the work.
It is much more important that the cvs system is up-to-date than that the latest
view of the repository works. In other words, if you are in doubt about whether to
cvs commit or not, always commit. Other people can always get back to an older version
of the cvs system using cvs commands.
Notice there is no concept of a lock in the cvs system. Freaky... but it works.
Conflict resolution
Somewhere along the line two people will edit the same file in their local directory
and each person wants to check it in. This is a conflict. This is how cvs deals with it:
Common commands
The structure of all cvs commands are
cvs ACTION
- cvs update - updates your local copy wrt to the repository (do this first thing when you get in)
- cvs commit - publish your local changes to the repository (do this last thing before you leave!)
- cvs status - see whether files have been changed locally or in the repository
- cvs add filename - add file to the repository
- cvs remove filename - remove a file from the repository
Do these commands from the Bio directory (inside it). cvs knows where to find the repository due
to the CVS directories scattered around the place.
To make a release you need to do a number of things
You Must have tagged the release you want to make a bug fix to.
Say we want to make a bug fix to 0.04. Here is what we do:
To see what tags a file already as in it go
cvs log README | more
To see what branch the local repository is on, go...
cvs log README | more
The sticky tag will be set to something if you are in a branch.
This page is still under construction. In the meantime Ewan Birney
birney@sanger.ac.uk
is probably the one to address your CVS questions to.
|