3
votes

I have multiple svn repositories, that i'm trying to combine to one.

I did a couple of svnadmin dump {old-repo} | svnadmin load --parent-dir {new-subfolder} {new-repo} runs to combine them all. However is there a way to point the working copies to the new revision?

If I do a svn switch --relocate {old-repo} {new-repo} I get get the error:

svn: The repository at '{new-repo}' has uuid '70567957-ca9a-40a3-95c2-c7c7f5304040', but the WC has 'e7f76c56-4d0d-472c-a1f0-6eac23a5d238'

I don't think it is easy to an new clean checkout. Because most of the WC have some local changes (like DB credentials / user images). And one even has a (required) cache dir with millions image thumbnails, which take +/- 2 days to regenerate.

Can I force svn to ignore the uuid, and just accept the new location?

2

2 Answers

2
votes

There is an answer in a new stack exchange site (Unix & Linux) titled svn switch --relocate: wrong uuid? that explains how to set the UUID of the new repository. That has the following consequences:

  • You may only set 1 UUID, but you have n old repositories. You have to decide which one to use, and for this one, the change of UUID may work.
  • All other will have to a new checkout.

Sorry, no complete solution, it seems.

0
votes

You can create patch files of your current working copies, then re-checkout and finally apply the patches.

Create patch file:

$> svn diff > ~/old_repo.patch

Checkout:

$> svn co {new_repo}

Apply patch:

$> cd new_repo
$> patch -p0 -i ~/old_repo.patch