1

We have huge SVN repository with multiple projects and we need to move one of them to another SVN repository.

The straight forward way to do it (dump database by svnadmin dump, filter it by svndumpfilter and reload it to the new repository does not work because the repository is too big (dump file is about 500GB) and svndumpfilter and other similar programs never end.

I used snvsync to copy the specific project to the new repository. It works fine except 2 points:

  • I read that repository populated by svnsync is intended to be read-only. I tried to commit changes to this repository (after I removed the hook that prevents me from doing so) and it seems to work. Still, I'm not sure it will not cause troubles in the future.
  • The final folder structure I got in the new repository is:

    /repos/trunk/projectA/

When I try to branch (copy) projectA to /repos/branches/projectA I get an error: "Repository moved permanently to http:/host/repos/; please relocate"

Any attempt to create folder on the same level as trunk produces the same error. In the end I want to get to the "strandard" folder sturucture like:

/repos/projectA/trunk
/repos/projectA/branches
/repos/projectA/tags

but did not find a way to overcome the error above.

1 Answer 1

4

A svnsync copy is supposed to be readonly for obvious reasons - if you commit to it, and then continue the syncing from the original, the copy will not be the same. It should error on you when you try to sync it afterwards, but that's the only reason. There's no technical reason why it should be RO, and in fact, once you have a copy and your original dies, it is designed to be an identical copy that you can start to use as a backup replacement.

Your problem with using it is because you're still using your original working copy that refers to the original repo. You need to either delete the WC and re-checkout, or tell it that the repository has moved - using the svn switch --relocate command. I don't understand how you could use svnsync to get a different layout from your original repo though (unless you mean you want to alter the layout after you've synced it to fit - you could still dump, filter and load the small repo to the new one)

Have you tried rsvndump which allows you to dump partial repositories.

Sign up to request clarification or add additional context in comments.

1 Comment

I'm not plannig to re-sync the reposiory. I'm looking for a way to move a part of repository to a new one. Once it's done the code in the old repository will not be changes/or used anymore.I have modifed the copied repository by removing any refernce to the original and it works ok. Still, when I'm trying to create a new folder in the new repository on the same level as a trunk I get the "Permanent removed 301 error". I guess somehow it may relates to the apache configuration though the new repository webdav configured in the same way as the old repository.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.