tags:

views:

467

answers:

1

I've been given a tar.gz file which is supposed to be a snapshot of a dead project. The project used to be stored in a CVS repository. The problem is that I don't get actual snapshots of the files. Instead, each directory has a subdirectory called "Attic" and a bunch of "f,v" files, where "f" seems to be the name of the original file. The "f,v" files look like a list of changes made to the original files over time.

Since the project is dead and the CVS server doesn't exist anymore, I have to find a way to restore the original files from these "f,v" files. Does anyone know if it's possible to restore a snapshot of the repository from these given files?

+3  A: 

Dude, that is the repository


So you totally win, you have the repository itself.

Unpack it, and check out the HEAD.

$ mkdir cvs; cd cvs
$ tar xvfz tar.gz
$ CVSROOT=$PWD
$ export CVSROOT
$ cd /tmp
$ mkdir test
$ cd test
$ cvs history          # revel in past glory
$ cvs checkout project # try a top-level dir from $CVSROOT, it's probably a module name
$ cd project
$ cvs log              # someone typed in all those log messages
DigitalRoss
I get the following error message when I try "cvs history" or "cvs checkout sth"cvs [history aborted]: $CVSROOT/CVSROOT: No such file or directoryIt seems that it's looking for a file named CVSROOT. I tried different directories as my CVSROOT. But, none of them worked. Perhaps because none of them contains a file named CVSROOT.
reprogrammer
OK, you have rcs files but not the whole repository. Fortunately, you still win. There is supposed to be a $CVSROOT/CVSROOT, but if not, just do `cvs init` prior to unpacking the old files. That will make a CVSROOT that should be good enough.
DigitalRoss
Awesome! I used "cvs init" to create the CVSROOT directory. The "cvs history" command failed since there are no history directories. But, I was able to checkout the top-level directory.
reprogrammer