Hi,

Due to Hurricane Sandy, my office currently has electricity but no Internet access, with no ETA (it's been nearly a week, and they are saying it might be another week). I desperately need to move our SVN server, hosted in our office, to our off-site servers hosted in Texas, so that I can work from home where I have full electric/Internet.

Currently, our SVN server is VisualSVN and hosted on a headless Windows Server 2003 that serves as our domain controller. We use the domain to authenticate SVN credentials. All of our servers in Texas are linux-based.

There's a crazy gas shortage here, so I essentially have just one shot to drive to the office, stick the necessary files onto a USB stick, and drive home to where I have Internet access, where I can send the files off to our sysadmin (James aka 'blud').

However, James has no experience with Windows-based SVN, nor access to a Windows box at the moment, and doesn't have any idea which files would be needed nor what would be exactly needed to do the import. And, as mentioned, I only have enough gas left for one try.

Can anyone help? Getting a bit desperate ...

Office just got internet so crisis averted. Not marking this solved, though, because the question still exists ;)

headless Windows Server 2003

Windows Server 2008. Oops :)

Member Avatar for LastMitch

I'm glad that the internet is working at your office! No worries anymore. So I think you will sleep much better tonight and there's a bonus for all your hard work you'll get an extra hour of sleep. So you can catch up with your beauty rest.

You want to move your repositories from Windows Server 2008 machine with VisualSVN Server (the current location) to a Linux machine? Am I correct?

VisualSVN Server works only on Windows so I assume you already have some Subversion server setup on Linux side.

However, James has no experience with Windows-based SVN, nor access to a Windows box at the moment, and doesn't have any idea which files would be needed nor what would be exactly needed to do the import. And, as mentioned, I only have enough gas left for one try.

The command-line is still the same :).

  1. See the SVNBook article "Migrating Repository Data Elsewhere"

  2. So you can dump each repository:

    svnadmin dump C:\Repositories\REPO > REPO.dump

  3. And then load the data on a Linux machine:

    $ svnadmin load /var/svn/repo < REPO.dump

There are other ways to migrate repositories (e.g. svnsync, svnadmin hotcopy) and you can check them in the SVNBook.

  • Additionally you may need to get the certificate; it's stored in %VISUALSVN_SERVER%\certs\.

  • VisualSVN Server configuration files are stored in %VISUALSVN_SERVER%\conf\.

  • If URL to the new server changes you will need to relocate your working copies (or just perform a fresh checkout from the new server).

I forgot to note one important caveat!

Currently, our SVN server is VisualSVN and hosted on a headless Windows Server 2003 that serves as our domain controller. We use the domain to authenticate SVN credentials. All of our servers in Texas are linux-based.

As I see you use Windows authentication that allows users to access VisualSVN Server using their Active Directory domain credentials.

Since you move your repositories to a Linux server you need to temporarily switch to SVN authentication type (unless you have a magician who will setup Windows authentication on a Linux SVN server lol ;)). So you need to take care of authorization settings. I.e. you should recreate authorization rules on the linux server.

Unfortunately you didn't mention what is the 'target' Linux environment so I'm kind of stuck and just make assumptions.

you've been caught in a predicament, but at least the problem has been averted.

Contingency plan is always important but sometimes we need to learn things in a hard way.

Cloning the system, if the problem goes for a while, I think that would that be an option

:)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.