SvnDumpUp

SvnDumpUp is a mini-tool to move a folder in svn dump file to a up level.


Introduction

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

Another:

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.


Usage

To use 'svndumpup':

svndumpup <dumpfile> <parent-to-remove>

For example:

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

Terms of Use

svndumpup.exe - 135k - is FREE to use. We hope you can make a donation of $2 (or $5) if it is useful to you.

svndumpup_demo_all.zip - 196k - all files in this demo, including source file.

 

Add new comment