views:

710

answers:

3

I've been using Tortoise SVN (and VisualSVN) with a local repository on my desktop PC for a couple of months. We've just set up a Linux SVN server, and I want to move my repository to this server, preserving all my history. Once it's moved, I'll stop using the local repository.

The Tortoise docs suggest using the "Relocate..." command, but this complains about mismatched UUIDs. I found some suggestions on how to edit the UUID file to make it match the server, but Tortoise ignored the new value, even after a reboot.

Also, I currently don't have command line access to the Linux server, but can probably get it if I have to.

What's the best way to do this?

+2  A: 

Your best bet is to read the section on Migrating a repository in the Red Bean book

Jeff Paquette
+8  A: 

You need to svnadmin dump your local repository, get that dump file onto the Linux machine, and svnadmin load it there.

Relocate is used on your working copies after the above has been done.

Here's the documentation.

Michael Hackner
The svnadmin dump worked fine - thanks! However, Relocate still complained about mismatched UUIDs. Also, VisualSVN insisted on referencing the old, local repository. After a fair bit of futzing around, I renamed ALL my working copies, and then did fresh checkouts into new working directories. When I'd confirmed that everything still built and ran OK, I deleted the old working copies.
Tom Bushell
+2  A: 

If you use a FSFS-repository backend (this is standard since svn 1.3) you can just file-copy the whole repository directory (eg. via SCP) to the LINUX server. Then the relocate should be no problem as it is in fact the same repository.

The FSFS repo format is platform compatible (please check that linux svn version is same or higher than you visualSVN version)

I did this very often and it really work (of course it is much better to stop committing before copying the repo)

Peter Parker