Subversion 1.5 – that long distance feeling?

Migrated. Originally published: 2008-11-26

Have you seen a situation where Subversion needs to be accessible on a couple of different continents? Checkout of a few files, or an update with no changes, takes at least several seconds, call it 10, when your server is on the other continent. The following notes in the Release Notes show that this may be fixable now.

From the Subversion 1.5 Release Notes:

WebDAV transparent write-through proxy (server)

… Subversion 1.5 adds WebDAV proxy support to mod_dav_svn, effectively allowing bidirectional revision history replication between master servers and slave servers using mod_dav_svn.

All clients interact with a slave server, but the slave transparently passes all of the write-oriented activites to the master (rewriting the content as necessary). The slaves are essentially read-only, but they do have a complete copy of the repository locally. This serves to alleviate read traffic from the master server which may be desirable in certain circumstances.

This model has several advantages to using a straight HTTP DAV-aware caching proxy, in that each slave can respond to all read-only requests without ever having to relay them to the master backend.


* Subversion 1.5 or newer.
* Apache HTTP Server 2.2.0 or higher with mod_proxy enabled.

(end quote)

Not sure if this means you are allowed to have one master and one slave, with traffic on the master as well as the slave? The notes seem to imply that you can’t, but they are aimed at one situation – heavy load – and I am looking at a different one – distance-based lag times.

I will definitely look into this.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s