SVNBackup was borne of some issues I faced while working on a client’s servers. They had previously been using ‘svnadmin hotcopy’ to make their backups, but that had a few of limitations:
- SVN hotcopy backups needed to be rebuilt when I restored them to a version of SVN built with a different DB back-end. This requires rebuilding the SVN database, which is time consuming and annoying since svnadmin doesn’t give any indication of progress as it works.
- Because of the size of the hotcopy backups, they were only being run nightly, which could result in up to 24 hours of lost work if the system had to be recovered from backup.
So, I scripted up a way to use ‘svnadmin dump’ and ‘svnadmin load’ for full and incremental backups of SVN that are back-end DB independent. Not only can it be used as a backup system, but it can be used to migrate between versions and builds of subversion. Because of its efficiency it can be run as often as you want, so that your incremental backups catch every check-in.
Update (2015-02-01): I have moved this project to Github, so that I can do a better job of tracking issues, accepting change bug fixes, and releasing changes. Please ‘watch’ this project if you want to be kept up to date with developments: https://github.com/ghstwhl/SVNBackup