You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Erik Hemdal <er...@comprehensivepower.com> on 2006/09/14 18:14:20 UTC

Moving a subtree to a different repository

One of my users committed a number of files to the trunk of our repository.

svn://server/OriginalProjectRepo/trunk/DirectoryWithFilesInIt

Now we've decided that we want to move this directory and all its contents
to a different repository, which already exists, 

svn://server/DifferentProjectRepo/trunk/DirectoryWithFilesInIt

I'd like to do this in a way that preserves the history of changes made.  I
know I can export the current revision from OriginalProjectRepo and then
check files into DifferentProjectRepo, but this would naturally break the
history of the files.

I've read the Subversion Book, as well as William Nagel's book, to try to
apply svndumpfilter to the problem.  I can see methods for combining
repositories and splitting repositories into _new_ ones.  But I don't see
how to move files between repositories that are already established.

Is there a way to do this, or am I stuck?  I suspect that I _am_ stuck, but
I wanted to ask in case there's a way to do this and save history.

I'll appreciate any help.

Erik


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

RE: Moving a subtree to a different repository

Posted by Gavin Lambert <ga...@compacsort.com>.
Quoth Erik Hemdal <ma...@comprehensivepower.com>:
> One of my users committed a number of files to the trunk of
> our repository.
> 
> svn://server/OriginalProjectRepo/trunk/DirectoryWithFilesInIt
> 
> Now we've decided that we want to move this directory and all
> its contents to a different repository, which already exists,
> 
> svn://server/DifferentProjectRepo/trunk/DirectoryWithFilesInIt
> 
> I'd like to do this in a way that preserves the history of
> changes made.  I know I can export the current revision from
> OriginalProjectRepo and then check files into
> DifferentProjectRepo, but this would naturally break the
> history of the files.
> 
> I've read the Subversion Book, as well as William Nagel's
> book, to try to apply svndumpfilter to the problem.  I can
> see methods for combining repositories and splitting
> repositories into _new_ ones.  But I don't see how to move
> files between repositories that are already established.
> 
> Is there a way to do this, or am I stuck?  I suspect that I
> _am_ stuck, but I wanted to ask in case there's a way to do
> this and save history.

IIRC, 'svnadmin load' supports adding the contents of a dumpfile to an
existing repository, so you *should* be able to dump your current
repository, and use svndumpfilter to get a dump file containing just the
files you want to move over.  (If you want to expunge them from the
source repository as well, then you'll need to make a second dump that
excludes those files, but loading this one in *will* break any working
copies pointing at the source repository, and everybody will need to get
a fresh checkout.  [Loading additional revisions into the repository
usually won't break anything, but deleting revisions definitely will.])

For reasons of paranoia, shut down the servers accessing the target
repository while you're doing that, and make sure you have plenty of
backups beforehand, just in case.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org