tags:

views:

100

answers:

4

I’m looking for a suitable distribution of Subversion for deployment within an enterprise. It needs to run on a Windows server and should scale to support simultaneous users numbering probably not more than a dozen (this is simultaneous connections, not total users) and support repositories of up to maybe a couple of Gb. The main function I’d like to achieve beyond the usual Subversion features is the ability to distributes the right to create repositories and manage permissions out to named individuals without necessarily granting them server level rights or providing them with the ability to read other repositories they should not have rights to.

I’ve been using Visual SVN Server for quite some time on personal projects and been very happy with it but this is obviously a very different scenario. I’d appreciate some feedback both on Visual SVN’s suitability (I’m aware this is already partially covered here) but also other distributions which may be more suitable for a corporate environment.

+1  A: 

We use the windows service version of svnserve that I believe ships now with the official distribution of subversion. I works well for us with the server collocated to most of its users (although we have some across the Atlantic from us). We have fewer concurrent users than your talking about but probably 20 total users but it is unlikely in the extreme for more than 4 to be hitting the server at the same time. Our total repository size is about 15Gb.

The most flexible system though is to host it behind Apache. Apache's security controls are much more flexible and will probably be more what you are looking for. Apache on windows is not the best but should be more than enough for your needs. It will take a bit of setup with the config files and all but you can be pretty fine grain with regards to the permissions. I recommend reading the svnbook on the official site.

giltanis
A: 

We've been hosting behind apache 2.0.x for a few years now and I've been nothing but happy with it. We are using mod_auth_sspi for user authentication, mod_authz_svn for user/path authorization, and mod_dav_svn to add in WebDAV access. Once you get it installed and configured, it just keeps working. It is really convenient to be able to browse the repository using WebDAV as well. If you need more, then you can install any one of the web viewer tools.

The configuration was pretty easy as long as you can just give every authenticated user read access and then create user groups and grant write access to either complete repositories or subtrees. Separating authentication and access control makes the system really nice to maintain as users come and go. We are currently hosting three repositories on one Win2K server. We have somewhere around 50 or 60 total users and most of the access is concentrated on one of the repositories. The last time that I checked we had about 7 or 8 simultaneous connections and about 6GB total. I'm not sure what that calculates to in file size though.

A few warnings are warranted...

  1. Read Version Control with Subversion a few times
  2. Figure out how you want to layout your repository before you start committing code
  3. Really make sure that you have thought out the repository layout... in particular how you are going to maintain multiple versions and branches.
D.Shawley
A: 

Stick with VisualSVN Server. It works well, is easy to manage and install, and integrates well with Active Directory authentication. That's roughly all you require from an enterprise product.

Given those, and your experience with it, it's the perfect tool for what you want. You can grant permissions to different repositories very easily, though obviously creating new repositories will require server-level access (unless you provide a script to perform it for you) and they require server-level disk access, and the ability to access the configuration. however, once created and set up, they should be able to be secured differently for each repository. Its not going to be perfect for your situation though, but I'm not sure you're going to get the ability to allow people to create and secure their own repositories without having access in some way to the rest of the server.

SVN supports repositories of over a few gig - I have 12Gig of data in 2 repos, with 300k revisions.

gbjbaanb
A: 

It turns out there is no distribution out there to do what I needed so I wrote my own management layer on top of VisualSVN. I’ve recorded the process in blog format for the benefit of anyone else who stumbles across this question in the future: http://www.troyhunt.com/2009/10/creating-your-own-custom-subversion.html

Troy Hunt