I would like to split our subversion repository as it has now attained
a size that makes it difficult to easily backup/maintain and there are
several area in that repo dedicated to projects no longer maintained
Before I proceed, I would like to ask to questions in order to confirm
that I got everything right.
I've read the handbook several times but there are technical aspects,
somehow I foresee a problem.
So my SVN repository is like:
What I would like is that working repo from now on to only contain:
While another will contain:
Should mention that I would like the revision number and history to
remain the same across both repo; so people can easily move their
existing checkout using svn switch.
so first, I have performed a full dump:
svnadmin dump /path/to/repo > repo.dump
Then I have run svndumpfilter like so:
svndumpfilter include project2 < repo.dump > projects.project2.dump
svndumpfilter include project3 < repo.dump > projects.project3.dump
svndumpfilter include main/sub-project2 < repo.dump >
svndumpfilter include main/sub-project3 < repo.dump >
Then, to create the new repo, I would do:
svnadmin create newrepo
svnadmin load --ignore-uuid newrepo < projects.project2.dump
svnadmin load --ignore-uuid newrepo < projects.project3.dump
svnadmin load --ignore-uuid newrepo < projects.sub-project2.dump
svnadmin load --ignore-uuid newrepo < projects.sub-project3.dump
Is that what I can expect?
Isn't there going to be some conflicts in regards to the empty
revision that are going to be added?
should I add : --drop-empty-revs in the 2nd and following svnadmin command?
I'm suspecting that what is an empty revision in the first load, will
be a loaded revision in the 2nd dump and is likely going to cause a
I haven't tried yet because the dump is so big (150GB) and it's taking
several hours for each svndumpfilter to complete
Now, finally, what I would like to do is remove the exported directory
from the original repo ...
In my foggy understanding of the process, I can't figure how I can do
it other than working in succession from one dump to the next such as:
svndumpfilter exclude project2 < repo.dump > exclude.project2.dump
svndumpfilter exclude project3 < exclude.project2.dump > exclude.project3.dump
svndumpfilter exclude project3 < exclude.project3.dump > exclude.project4.dump
svndumpfilter exclude project3 < exclude.project4.dump > exclude.final.dump
Is that right?
Than obviously once it's all done:
svnadmin load newrepo < exclude.final.dump
Hopefully this is all I need to do, other than a massive amount of
free disk space and plenty of time.
Thank you in advance
Received on 2011-06-23 09:59:15 CEST