In Conversion to Subversion: Tags, I explained how I cleaned up the tags portion of the CVS dump file in order to generate a subversion repository in the format I wanted. Lars Mentrup emailed to say that I had not been clear enough on a few points. After re-reading what I wrote, I have to agree.
In the original article, I referred to working on the initial copy from trunk. This was obviously missing a subtle point. All of my changes started with the dumpfile that had been filtered to contain the project and tag entries. Given this filtered file, I was talking about the initial copy of the tags. This is the equivalent of
cp 'trunk' 'tags/FIRST_RELEASE'
Now, I really did not want the entire tree copied to the tags
directory, and I wanted the tags
directory structured differently. So, I changed the equivalent of the above command to the equivalent of
cp 'project1/trunk' 'project1/tags/FIRST_RELEASE'
Now the dumpfile has a large number of extraneous delete commands that are the equivalent of
rm tags/FIRST_RELEASE/project2
rm tags/FIRST_RELEASE/project3
rm tags/FIRST_RELEASE/project4
...
Since I changed the initial copy, these are no longer needed. So, I just delete them from the dumpfile.
The result of all of these changes is a single dumpfile with the ‘project1’ project information and the ‘FIRST_RELEASE’ tag information. I can use svnadmin load
to load the project and its tags into the repository.
Hopefully, this will clarify what I meant. Thanks again to Lars for taking the time to let me know where I was unclear.