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:
Refactored repo looks something like this:
(The real case is obviously a bit more complicated, with some
directories moving to new locations and some files moving to new
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
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
There is also svndumpfilter3 from
it appears to be no longer maintained and I am uncertain of its
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
Received on 2009-03-02 21:17:06 CET