cvs
Overview
It is possible, but difficult, to partition the work in these assignments so that you and your partner can work independently for a while and then merge the results into a solution. What this means is that you may find that sometimes you work together, and sometimes you work alone. Unless you work together all the time, when you sit down to work alone you might find that your partner has broken something that used to work. (Experience indicates that when something is broken it's always the partner's fault.)
cvs
is a source control system. It might be of interest to you for three reasons:
- It will automatically keep a history of all versions of files you check in, and let you retrieve any of those versions whenever you want.
- It is designed so that many users, working on many machines, can share files. Those many users could be you, at school and at home, say. That is, it makes it easier to move files around if you want to work locally on some non-lab machine.
- It's incredibly useful, and well worth the time to learn independently of any need for it in these assignments.
Of course,
You probably need to understand how to use only thesecvs
will be a help only if you know how to use it. That will require a little reading. Here are a couple of sources:cvs
commands:checkout, update, commit, add
.In case you want to try using
cvs
, I set up a repository in each group's shared file space, e.g.,/projects/instr/05wi/cse378/cse378a/CVSRepository(Creating the repository means you don't have to, so that's one less seldom-used command to figure out.) I also created a test project,testProj
, so that you can experiment with the often used commands. (The project contains a littleSMOK
model.) To get a local copy of the test project, say this (assuming you're in groupcse378a
, which you're not (probably), and your login iszahorjan
, which it isn't):$ cvs -d :ext:zahorjan@attu:/projects/instr/cse378/cse378a/CVSRepository checkout testProjYou have to do that only once, when you first get the project. After that,cvs
remembers the location of the repository and the name of the project, and you can just say$ cvs upateto update the files on your local machine with the latest copies in the repository, and$ cvs committo push the files in your local directory up into the repository.
cygwin
For this to work, you'll need at least the following components installed viacygwin
setup:
cvs
openssh