SvnDumpUp is a mini-tool to move a folder in svn dump file to a up level.
Sometimes, we have a svn repository with a structure like this: (There are 2 projects in a svn repository.)
REPO_ALL ├─project1 │ ├─branches │ ├─tags │ └─trunk └─project2 ├─branches ├─tags └─trunk
But maybe for some reason, we need to split them into 2 separate repositories, and we hope to keep the history. Then we can use 'svnadmin dump | svndumpfilter' to get 2 repositories like this:
REPO1 └─project1 ├─branches ├─tags └─trunk
REPO2 └─project2 ├─branches ├─tags └─trunk
But if we want to get rid of the leading 'project1' and 'project2' and let the 'trunk' to be in the root directory in repository, we cannot. (Maybe I have not found. :)
So 'svndumpup' is to do that thing, to move a directory level up in svn dump file.
To use 'svndumpup':
svndumpup <dumpfile> <parent-to-remove>
1. Dump project1 and project2 from REPO_ALL separately:
svnadmin dump REPO_ALL | svndumpfilter include project1 > project1.dump svnadmin dump REPO_ALL | svndumpfilter include project2 > project2.dump
2. Use 'svndumpup' to get rid of 'project1', we keep 'project2' unchanged for compare.
svndumpup project1.dump project1
We will get a new file 'project1.dump.up' as the result of 'svndumpup'.
3. Then we load those 2 dump files into 2 new repositories. ('project2' is not removed, in order to compare with project1)
svnadmin load REPO1 < project1.dump.up svnadmin load REPO2 < project2.dump
4. Now we will get a REPO1 like this:
REPO1 ├─branches ├─tags └─trunk
svndumpup_demo_all.zip - 196k - all files in this demo, including source file.