[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Copying parts of a repository, excluding revisions post-TAGNAME...

From: Leander Hasty
Subject: Copying parts of a repository, excluding revisions post-TAGNAME...
Date: Wed, 31 Dec 2003 11:30:20 -0800


As part of contracted work on a product, we received a tarball of the
project source and data from another company.

We'd very much like to have the entire revision history of all of these
files; the other company is willing to give us the directory trees for
the project from their CVS repository.  From what I understand, I could
normally just accept a tarball of said directories and manually insert
them into a local CVS repository and possibly edit the CVSROOT files a

However, we're not entitled to any of their source on this project past
a certain release, which is tagged in their repository.

Digging through "man 5 rcsfile" and "doc/RCSFILE", it seems like it
would be possible to write a script to process each ,v file, determine
the version associated with the TAGNAME, and then trim out any entries
in the rcs file that have a version greater than this number.  I'm more
than a bit concerned about the difficulty of creating a robust script
which can be used on a large (tens of GB) CVS repository, remotely, by
someone else (who is inexperienced in CVS administration).

So, questions:

- Does there exist a CVS command, client, utility, or script (even
third-party) which already has this capability, or some form thereof?

- If not, given that I'd only have a day or two to roll my own utility,
what sort of hurdles should I expect?  (Is it possible?)

  - Does the rcsfile format (or the way CVS uses it) guarantee
chronological ordering of the "delta" and "deltatext" entries in the
    That is, can I expect any checkins post-TAGNAME to be after the tag
entry in the ,v file, in each of their respective sections?

  - What other data in the ,v file would I have to change if I could
delete all of the post-TAGNAME entries?  ("head", probably...

- Can anyone suggest any more sane way to do this?

- What documentation should I be looking at, aside from that mentioned

Thanks for your time and patience.

Leander Hasty 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]