Project Home


Table of Contents


Replicates the directory structure and files of <src> into <dest>, performing the necessary additions and deletions to register the changes files in <dest> into Subversion. <dest> is assumed to be a Subversion checkout. Files that exist on both sides are diffed to figure out if there are changes to be copied.

Be careful before importing, always check with a dry-run that the behaviour is what you think it should be. Even on a large codebase, it is worth at least just having a look.

Example invocation:

svn-update-tree /home/blais/tmp/boost-cvs/boost-1.31.0 /3rdparty/boost-latest

Warning: this is meant to be run under UNIX, it has not been tested under Windows. It probably won't work under Windows. If you want to fix it for that, I'll be happy to include the changes if you want to send them to me.


I have been using a CVS repository as a backup mechanism for years. Sometimes I would tag versions and release the software for these versions. Individual diffs between those do not matter so much, but I would like to preserve the individual versions in the repository.

cvs2svn keeps all the diffs and does not allow to compress the diffs in-between. This is why I wrote this script. (Note that another way to do this would have been to compress the diffs in the CVS repository, but I like to leverage the different versions that cvs2svn produces).

What I did was to run cvs2svn on the CVS repository, and then to progressively merge the branches in order and commit everytime. The process that controls this will be available in a separate script.


  • The permissions are not set as Subversion properties (apart from the automatic detection that occurs);
  • Obviously, the dates are lost;


svn-copy-register [<options>] <src> <dest-checkout>

Please Donate!


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.


Download program here.