views:

679

answers:

9

Is it possible to create "federated" Subversion servers? As in one server at location A and another at location B that sync up their local versions of the repository automatically. That way when someone at either location interacts with the repository they are accessing their respective local server and therefore has faster response times.

+1  A: 

Sounds like you might like Git. There's a Google Talk explaining all about it.

Peter Coulton
+1  A: 

@Peter Coulton
Ahh yes, I knew that one would come up. I am familiar with Git and the likes (Mercurial, etc) and understand that the distributed source control concept is very similar. However, for me personally at least, I need to use it in the context of Visual Studio for which there is a great plugin called VisualSVN as well has some projects already fairly vested with SVN. I would definitely consider Git for future products. And would consider it even more if there were more tools for integrating with a Windows IDE like Visual Studio

Adam Haile
A: 

Its probably not exactly what your looking for, but you may be able to implement OS level clustering.

shsteimer
A: 

Its probably not exactly what your looking for, but you may be able to implement OS level clustering.

Sounds cool. But haven't an idea what exactly that is. Could you explain?

Adam Haile
A: 

Sounds cool. But haven't an idea what exactly that is. Could you explain?

Sure. Well first let me say that I've never actually done it, but I've heard of it done with Windows Server 2003 successfully in an HA/DR use case. Thats why I stated its probably not what your looking for because I believe it is commonly used for that scenario and not for what your trying to do. I'm not sure if this is a Windows or *nix scenario for you, but I might start with some Google searches and basic research into OS clustering. Essentially though, as I understand it, what you end up with is 2 physical servers, with identical hardware, which are mirrored at an OS level such that they act like one server. Obviously this entails load balancing, session fail-over, etc.

shsteimer
+3  A: 

This is more or less the perfect use case for SVK. SVK is a command line front end for subversion that works with an entire local copy of the repository. So your commits, updates, etc. work on the local repository and you can then sync with a master. I would generally recommend SVK over plain subversion anyway as it makes a lot of things nicer. No .svn folders, better branching and merging, better conflict resolution.

Mat
A: 

This is more or less the perfect use case for SVK.

Looks about like what I was looking for...and if there is a separate solution like that I'm going to assume that this functionality is not available in the SVN core it self. It looks a little more complex than I would like, but it seems that it would do the job.

Adam Haile
A: 

@Mat Your link is broken. Too many https.

http://svk.bestpractical.com/view/HomePage

RobotCaleb
+4  A: 

Subversion 1.5 introduced write through proxy support for webdav servers over the existing SvnSync support that was added in 1.4. This allows you to have local mirrors for retrieving files and history, but commits are committed directly to the master repository. If setup correctly the local mirrors receive the changes immediately.

See the Svn Book for more details.

Bert Huijben
Direct link to relevant section: http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.serverconfig.httpd.extra.writethruproxy
Wim Coenen