Move SVN repositories to remote server without moving SVN server, possible ?

Hi Experts,

I was told I could move my svn repositories to my new datacenter and still keep my Visual SVN server at the same URL as it was, with remote repositories on the datacenter.

But when I read online ,googling about it, I hear that I have to set up a new server on the datacenter, which forces everyone using svn to relocate the source of their working copy. Something we would like to avoid.

What are your inputs and experiences on the subject ?

Using VisualSVN server 2.06 on windows.
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

I did use CVSNT for a long time.  As SVN is sad to be a logical successor of the CVS, I was thinking about switching to SVN.  When doing some more research, I have found Git.  But it was in time when Git was not ready for Windows.  Anyway, it contained a bridge to SVN (you can work with Git transparently in the mode when SVN is used as the server).  I did not know if Git is the right choice, but the SVN bridge was another argument for switching to SVN (with Git possibly used in the future).

To make it short, I have finally switched directly to Git.  Even though I did not like Linus Torvalds' way of insulting the other revision control systems, I have to admit that he was probably right.  I like the Git a lot (despite the name).

Why I am talking about Git in context of your question?  It was designed as a distributed RCS.  It means that you have much more freedom to place your repository wherever you need -- also temporarily.  After using it for a while, I really recommend to think about migration from SVN to Git.  It should be fairly easy (because of the bridge).  I only do not know if there is any integration layer for Visual Studio.  This is because I consider the built-in visual the "Git Gui" and the "gitk" to be very nice tools. (I personally have no need for the VS integration).
rushtoshankarSr Manager Software DevelopmentCommented:
You can have your visual svn server installed in one machine and you can have the repository in another machine/server which is accessible through network via shared folder.

In my office, I am running a local SVN server for my team and having the repository in our official server. I am doing this to avoid the manual backup of my repository from local machine to server every for safety.

Now regarding your question :-
Lets say you have two machines. MachineA (current svn server machine), MachineB (datacenter machine).

Till date you having the Visual SVN server and repository in MachineA. So the clients are accessing the repository using the following URL. https://MachineA/svn/RepoName/.

Here are some steps you can follow to have your repositories on the datacenter PC while running the svn server in the same machine.
- Share a folder from MachineB (\\MachineB\Repo, assume that UserX is the only user has the permission to this folder)
- Take a backup of the repository (probably from C:\Repositories on MachineA, copy the entire folder).
- Uninstall the Visual SVN server on Machine A.
- access the folder \\MachineB\Repo using UserX credentials or log into the MachineA using UserX credentials (i assume, UserX is a domain user). By doing the second option, you can avoid accessing the folder after every reboot for the visual svn server to work
- Install the visual svn server on MachineA, enter the folder name as \\MachineB\Repo for the repository.
- Stop the Visual SVN service
- Copy the backed up repository to \\MachineB\Repo
- Start the visual svn service.

Now you can access the same repository with the existing permission from any machine that was using the repository previously. (by using the SAME URL https://MachineA/svn/RepoName/)

Hope this helps. Feel free to reply if you have any questions.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Big Business Goals? Which KPIs Will Help You

The most successful MSPs rely on metrics – known as key performance indicators (KPIs) – for making informed decisions that help their businesses thrive, rather than just survive. This eBook provides an overview of the most important KPIs used by top MSPs.

maxalarieAuthor Commented:
Thanks pepr, but I think I would prefer to keep on using SVN.

Wow, thanks rushtoshankar, I will definatly try that.
Both machines are on the domain.
I am not I get the thing about UserX...
Installing SVN Server with UserX with \\MachineB\repo as the repository (to which UserX is the only user that has access), will do so VisualSVN server will use UserX credentials everytime it tries to access \\MachineB\repo ?

This would be the exact setup I was looking for. Thanks again. I will award the points as soon as I test this...
rushtoshankarSr Manager Software DevelopmentCommented:
If the MachineA is logged in with UserX credentials, the VisualSVN will always use the UserX credential to access \\MachineB\Repo. This is windows behavior. If the MachineA is logged in with some other user credential, the VisualSVN can't access. You need to manually access the \\MachineB\Repo every time you login. (During logout, the temporary storage of the credentials will be wiped out).
maxalarieAuthor Commented:
Thanks :)
maxalarieAuthor Commented:
It worked like a charm !
Thanks for your help !

Some pointers on what didn't go exactly as planned :

1) Check with which user the Server service runs, it is that user that you must allow through the share. It isn't automatic with the user used for installation

2) The use of network maps isn't supported, use "\\machine1\shareA" format when installing the server (There was a warning in the installation though)

Thanks again !
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
File Sharing Software

From novice to tech pro — start learning today.