How to dump only a certain part of SVN repository?

How to you move a part of an SVN repository into a new repository?

To move the contents of a complete SVN repository into a new repository, one has to dump the old repository first:

svnadmin dump /path/to/repository > repository-name.dmp

and then load it into the new one using svnadmin load.

But I'm not sure how to just move a part. Do I still have to dump the whole thing? Do I grep for the part that I want?

To just dump myproject, I tried this, but it didn't work:

svnadmin dump /path/to/repository/myproject

Solution 1:

You need to use svndumpfilter for stuff like this. In particular svndumpfilter include. So for your case:

svndumpfilter include myproject < repository-name.dmp > myproject.dmp
svnadmin load /path/to/myproject-repo < myproject.dmp

http://svnbook.red-bean.com/nightly/en/svn.ref.svndumpfilter.commands.c.include.html

http://svnbook.red-bean.com/nightly/en/svn.reposadmin.maint.html#svn.reposadmin.maint.filtering

Solution 2:

If your repository is hosted at an URL you can use svnrdump to dump a sub-folder of the repository:

svnrdump dump http://svn.example.com/repos/[.../]project

where repos is the root of the repository and project is the sub-folder that you want to dump.