Table of Contents
Take a list of directories, each representing a version of some files (like a checkout of a release of some software), and imports each of these sequentially over an existing checkout, registering the new fileset and creating a subversion release for every directory imported.
This script can be used to convert a set of directories of files into a Subversion repository, in a way that is most natural to the way that it would have occurred if the repository would have been managed by Subversion the whole time. It is also a way to compress a repository (CVS, Subversion or otherwise), by re-creating it from specific moments in time.
To compress a CVS repository, you can use cvs2svn to let it figure out the CVS tags and branches, then you can checkout the entire repository and select the specific tags that you would like to keep and import them using this script.
The <dirlist> must point to a file that contains on each line and separated by whitespace:
<checkout> can be either of:
If the <dirlist> contains releases to be made, the default URL to make the releases to will be <checkout>/../tags (we assume that <checkout> point to <...something>/trunk). You can specify an alternate subdirectory using the options.
This script uses svn-copy-register to perform the copies. It directs this script and verifies the results in a specific way.
svn-import-releases [<options>] <dirlist> <checkout-or-svn-trunk>
Important
This computer program or library is provided for free. I am aware that some of the programs that I provide for free allow people to get their work done faster or better, save them time and money. If you are using this program for benefit, especially if you are using it within a commercial environment and it saves you time or work, please consider making a donation by sending me a book from my Amazon Wishlist or by a direct donation to my company's PayPal account by clicking on the link below.