I've just uploaded a new module on CPAN, which is called SVN::Dump. The goal is to be able to read one or several dumps produced by the command svnadmin dump, modify them and then writing them back to file or to svnadmin load so as to perform useful tricks.
The tricks I have in mind include:
Some of these things should be possible to do directly to the stream coming from svnadmin dump but others will require several dumps and probably several passes. So the SVN::Dump::Index and the SVN::Dump::TranslationTable modules may not be far away...
The module is very alpha at the moment: I hated myself for the interface when I wrote the two examples included in the distribution. ;-)
Everything is subject to change, and feedback is very welcome.
Re:What does it do?
BooK on 2006-10-19T20:00:41
svnadmin dump is a tool that takes a SVN repository and produces a text file you can typically backup, pass around, and use to create an identical repository with the help of svnadmin load. You can also push the revisions of a repository into another existing one with svnadmin load and the appropriate dump. But the chronological order of revisions is then broken.
When I set off to create SVN::Dump, I actually wanted to be able to reorder a repository chronologically. To do that, you need to take a dump of your repository, mangle it, and then load it back into an empty repository. Which is why I needed to be able to parse a dump.
This first version can read a dump, and produce a byte-for-byte identical dump from it. Not very useful, but it's a start. Future versions will include tools to reorder revisions, filter them, etc. By this time, I should have a better API, so writing your own dump munging tools should be easier.