You're not currently signed in. Sign in.

Bootstrapping SVK Repositories

If you have a large Subversion repository you are making available to the public, and everyone decides to use SVK to mirror the entire repository, your sysadmins will be very unhappy with you. Mirroring a repository is an expensive operation both in CPU and bandwith costs.

A solution to this is to create a bootstrap file that your users can download and install into their local svk installations. Then they pull any changes from that point forward.

To create a bootstrap file...

1. Create your own svk mirror of the repository you wish to copy:

svk depotmap project-bootstrap ~/.svk/project-bootstrap

svk mirror /project-bootstrap/mirror http://url/to/your/svn/repo

svk sync /project-bootstrap/mirror



2. Create a svn dumpfile of your repository.

svnadmin dump --deltas ~/.svk/project-bootstrap > project-bootstrap.dump



3. Edit the dumpfile to remove the 'UUID' line. (This should be the second or third line of the file.) This step is optional, but it helps prevent issues later.

4. Compress the dumpfile (bzip2 tends to work quite nicely) and place it where your users can easily get to it.

To update your bootstrap file, just run

svk sync /project-bootstrap/mirror



and return to step 2 above.

Your users can setup their local repository like this...

1. download the dumpfile

wget http://www.yourproject.org/project-bootstrap.dump.bz2



2. create a svk repository

svk depotmap project ~/.svk/project



3. load the dumpfile into the repository

bzcat project-bootstrap.dump.bz2 | svnadmin load --ignore-uuid ~/.svk/project



The --ignore-uuid is very important, otherwise merge tracking will get very screwed up.

4. sync the mirror to the latest revision

svk sync /project/mirror



5. use svk as normal.