I've had to learn this twice over the last 2 years, so I'm going to document it here for eternity.
I have a Subversion repository and I want to split off a piece of it (one subdir) into a new repository on another server.
svnadmin dump repositories/myproject | svndumpfilter include subproject \
| bzip2 -9 > subproject_at_rev_4753.bz2
scp subproject_at_rev_4753.bz2 my-new-server:.
svnadmin create repos/newproject
bzcat subproject_at_rev_4753.bz2 | svnadmin load repos/newproject
I don't use the
--drop-empty-revs option on svndumpfilter because that seems to confuse svnmerge.py (I'm using SVN 1.4 still, not 1.5 yet).
Then in existing workspaces, I do:
svn switch --relocate http://my-old-server/myproject/subproject \