Since I’m currently using RHEL6 on one machine as a desktop OS, I’ve been missing a few tools, which I’m working through submitting to EPEL. I’ve already submitted nautilus-image-converter (to allow fast resizing of images via GNOME context menu) and unison227 (great file synchronisation tool – a bit like Drop Box but you can keep it on your own servers). Last week I pushed a couple more useful tools to the testing repository:
Adding some RHEL6 desktop tools to EPEL
November 22nd, 2011Generating empty/padding revisions in an SVN dump
September 12th, 2011I’ve previously had an SVN repository filled with a mixture of projects that I’m now splitting out into separate repositories, so am in the process of creating various scripts based on “svnadmin dump”/”svnadmin load” to process repositories.
Along the way, I had a need to dump only selected revisions from a repository, using a command such as:
svnadmin dump -r 1234:HEAD /path/to/repo > repo.dump
However, when this is loaded back into a new repository (“svnadmin load mynewrepo < repo.dump”), the revisions are renumbered starting at 1, so that what was revision 1234 becomes revision 1. This is undesirable, as I have existing bugs and changelogs referring to SVN revision numbers, so I created a small script (svn-generate-empty-revisions) to create a number of empty revisions.
In use, it’s most useful to splice its output into the start of an SVN dump, for example:
svnadmin dump -r 1234:HEAD /path/to/repo > repo.dump # Extract the first few lines of the dump, which contain metadata head -n 4 repo.dump > repo-padded.dump # Splice in some empty "padding" revisions to preserve revision numbering # Note that the first revision is 1234, so we want 1233 empty revisions at start ./svn-generate-empty-revisions.sh 1233 >> repo-padded.dump # Add the rest of the original repository dump to the file tail -n +4 repo.dump >> repo-padded.dump