Migrating a Subversion Repository
When Subversion 0.29 hit the Debian archives, there was a Subversion database schema change, and new clients would no longer work with the old repository.
The instructions about what to do under these circumstances were a bit more hidden than I would have wanted when I suddenly discovered that my repository wasn't working. However, fixing the situation wasn't too difficult. Basically, I followed instructions in the Debian TODO file and looked in the svnbook in the "Migrating a Repository" section.
Thankfully, the well-designed Subversion dump/load format is schema-agnostic. To convert to the new schema, you dump your old database with the old svnadmin, move off the repository and then create the repository again and load the dump into it.
# svnadmin dump /opt/public/svn/software > software.dump # mv /opt/public/svn/software /opt/public/svn/software-old # svnadmin create /opt/public/svn/software # svnadmin load /opt/public/svn/software < software.dump # chown -R svn:public /opt/public/svn # chmod -R g+w /opt/public/svn
Apparently, the Debian packages come with an "old-version" svnadmin command, so you can do this even after you've upgraded.
-rwxr-xr-x 1 root root 87544 2003-09-30 08:48 /usr/bin/svnadmin* -rwxr-xr-x 1 root root 1389784 2003-09-27 21:34 /usr/bin/svnadmin-0.26.0-1* -rwxr-xr-x 1 root root 1467736 2003-09-30 08:52 /usr/bin/svnadmin-static*
Also, note that this dump/load functionality has other uses, such as loading one repository from another:
svnadmin dump /opt/public/svn/software | svnadmin load /opt/public/svn/software2