I doubt such a tool exists as what I'm about to describe, but I'd sure love to be wrong.
I want to collect a lot of versions of a lot of files into a nice, clean CVS repository, preferably in which the version numbers go 1.1, 1.2, 1.3, etc., instead of using a vendor branch (minor). I do want the commit dates to reflect the file dates of the various versions though, and "cvs import" is the only way I can find to do that without hand-editing the repo files. I want the revisions to go in chronological order. Unfortunately, by now, the various versions of a given file can be in any of the following places: 1. A directory somewhere (we can assume it'll be online and accessible at the time this major process is run). 2. An archive file (zip, generally). 3. Another CVS repository file, because I tried to do this with a bunch of Perl and bat files last December or so but never got finished, and further versions got created since then without CVS being used to manage them... so there are versions in the old CVS repo that got erased out on the network that I'd want to include in this master repository. 4. Any of the above 3 places with a different file name, because some of these things got renamed during their earlier lives. Any versions pulled from a CVS repo (items 3 and 4 above) should keep their log entries, commit dates, and any tags/branches. A tag or branch name should obviously be made to point to the new revision number in the final repo file. Finally, since many copies of a given file may be identical but might not always share the same date/time, the final repo should contain only one copy of such a subset and should have as its commit date the oldest file date found. (I suppose if a CVS version with a log and/or tag/branch names is part of such a subset, the CVS version's log/branch/tag info should be included; but the oldest file date should still prevail if it's older than the CVS commit date found.) Again, I know I'm shooting for the moon here...but if anyone has developed or worked on anything like this, I'm all ears. My December attempt involved running a few home-grown DOS-box utilities to create full-path file lists in chronological order within each name, a lot of global replace commands to reformat the output of that, a Perl script to generate a batch file to runn a lot of CVS and copy commands, and finally a run of that batch file. The batch file generated by the Perl script constructed and cvs-imported N instances of a sandbox, where N was the largest number of revisions found of any single file; thus, each successive import actually made fewer changes, until the last one(s) which might only change one file in the repository. I had to handle the zips ahead of time, and I have no provision at all for pulling stuff from another CVS repo into this one. My Perl script did have a way of letting me group file names into a single set though, so I could deal with case 4 above fairly well (I can't remember how I handled file name upper/lower-case issues though; this is Windows, so case differences in file names should be ignored). Thanks in advance for any info. -- Doug Lee [EMAIL PROTECTED] http://www.dlee.org Bartimaeus Group [EMAIL PROTECTED] http://www.bartsite.com "I before E, except after C, or when sounded like A, as in neighbor and weigh, except for when weird foreign concierges seize neither leisure nor science from the height of society." _______________________________________________ Info-cvs mailing list [EMAIL PROTECTED] http://lists.gnu.org/mailman/listinfo/info-cvs
