[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

keeping legacy repo in sync with refactored repo

From: Tyler <tyler_at_cryptio.net>
Date: Mon, 2 Mar 2009 12:16:06 -0800

Hey subverters,

We have a legacy repository which will continue to be used while we
migrate all of our products to a new, refactored repository. The legacy
repo will live on for at least 6 months while new development proceeds
in the refactored repo.

Legacy repo looks something like this:

svn://legacy/trunk/base_library
svn://legacy/trunk/product
                  
Refactored repo looks something like this:

svn://refactored/trunk/product/base_library
svn://refactored/trunk/product

(The real case is obviously a bit more complicated, with some
directories moving to new locations and some files moving to new
directories, etc.)

Currently, we have a script that checks out the latest from the legacy
repo, massages the checkout into the refactored form, and imports the
massaged checkout into the refactored repo. This process must be
performed manually and is tedious and error-prone (files that were added
or deleted since the last migration need to be handled specially with
svn add and svna rm in the refactored repo).

What would be better is an automated process to handle all this.

svnsync does a lot of what we want, but I don't see a way for svnsync to
handle the massaging step in between the legacy repo and the refactored
repo.

I could write something that uses svnadmin dump on the legacy repo, then
massages the dump files, then does svnadmin load on the refactored repo.
svndumptool looks like it can handle the massaging (as a side effect of
its merge command; see the section "Moving things around" from
http://svn.borg.ch/svndumptool/0.5.0/README.txt).

There is also svndumpfilter3 from
http://furius.ca/pubcode/pub/conf/common/bin/svndumpfilter3.html, though
it appears to be no longer maintained and I am uncertain of its
pedigree.

So, some questions:

- Am I completely off-base in my approach? Is there a
  better/cleaner/easier way to keep these repositories in sync? Do you
  see any gotachas in my overall strategy?

- Are any of these tools right? Are there others I haven't
  found/considered? Should I just write something from scratch?

I'm happy to provide more details, but I was trying to keep this
medium-length instead of painfully-long-god-why-are-you-still-talking
:).

Thanks,
tyler
Received on 2009-03-02 21:17:06 CET

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.