I will treat this as a check-off lab. I want you to learn enough about CVS (Concurrent Versions System) so that you can make productive use of it in your projects. To that end, I will have you work with your partners to set up a repository, create a project in that repository for the music scheduling system, and use basic CVS commands to work concurrently on that project.
If you want to know more about CVS, please look at the book Pragmatic Version Control, by David Thomas and Andrew Hunt, which is in the monitor room next to the computer lab. That book gives a good overview of version control using CVS. It also gives a number of standard commands, which they call recipes, which you can add to your repertoire. Additionally, here are two links to CVS websites:
cvs -d ~/sandbox init
This will create a directory called sandbox and put various system
files in a subdirectory called CVS. You should not do anything
directly to your sandbox. It will be manipulated through the
various CVS commands. Note: be sure to make this
directory read/write accessible to others.
By the way, the general form of a CVS command is:
cvs <global options> command <options and arguments>
using the notation from Pragmatic Version Control. In
particular, the CVS command used above is init, and the
global option is -d ~/sandbox, which tells where the
repository should be located. You can get more information about
the commands starting on page 139 of Pragmatic Version
Control.
cvs -d ~/sandbox import -m "Initial import" musicsystem musicsystem initial
This makes CVS install the files and directories (and recursively
their files and directories) in the repository with under name musicsystem.
After issuing this command, do a directory listing on ~/sandbox, and
you should see a directory called musicsystem which (more or less) contains
the files in your source directory. (I say more or less since, for
example, the GNUmakefile is now GNUmakefile,v. This is how it keeps
the various versions of the file as it is being revised.)
cvs -d ~user/sandbox co musicsystem
This will create a subdirectory called musicsystem of your work
directory, which is identical to the directory that you used to
create your Music System project, except that it has some additional
CVS files and directories which it uses to maintain necessary
information. In particular, each directory has a subdirectory
called CVS which knows where the repository is located. (You may
look at these CVS directories, but do not change them directly; your
CVS commands will work with them.) In particular, whenever you
issue a CVS command from your project or its subdirectories, you
will no longer need to include the global option -d
~/sandbox.
cvs commit -m "Minor changes"
This will commit all changed files in the current directory (and
recursively below) to the project.
You can see what changes you have made by issuing the following command:
cvs log file-name
where file-name is the name of the file (including path, if
necessary) that you edited. This will give information about the
various revisions of that file.
cvs diff -r1.1 -r1.2 file-name
This will do a "diff" on the two revisions (1.1 and 1.2), and report
the lines of the two versions that differ.
cvs update
This should now update the files in your project directory,
reflecting the changes the other team member made.