views:

264

answers:

6

I am looking for an enterprise subversion setup, that will fit the following requirements:

  • I need at least 2 instances of the repository server for high availability reasons
  • Management of multiple repositories
  • The 2 repository servers need to be synchronized.
  • Easy administration and configuration
  • User & authorization management with LDAP integration (web-interface) - optional
  • Backup & restore features, that guarantee the recovery with not more than 1 day of lost data
  • Fast and easy setup.
  • Monitoring of the repository(traffic, data volume, hotspots..) - optional
  • good security
  • either open source or low price tag, if possible
  • some pricing range, if a commercial tool is recommended.
  • a VMWare appliance would be great.

I am interested in an appliance or a set of subversion tools, that support these requirements. The operating system should be Ubuntu.

The configuration and setup of the toolset should be doable in hours or at the most a few days...

Our development team is not huge (about 30 people), but grows continually.

I have been unable to find anything (with the exception of Subversion MultiSite, that seems to big (and expensive? - they give no price information) for our enterprise) Can anyone recommend a solution? Could you also describe your experiences with the recommended tool?

The easier and faster installation and configuration is, the better... If it is without a price tag, this is even better..

Thank you for any help.

+3  A: 

I haven't seen a shrink-wrap setup for this, so far. If you want to build that from scratch, here are some pointers:

  • You can use builtin commands for the mirroring of the repo.
  • For multiple repos, just create a huge one and then add paths below the root.
  • For me, the command line is "easy admin&config", so can't help you there
  • To get user management, let subversion listen to localhost (127::1) and put an apache web server in front. There a loads of tools for user management for web servers.
  • For backup&restore, see your standard server backup tools.
Aaron Digulla
A: 

We use svn for enterprise work. It is perfectly adequate. There are plenty of enterprise testimonials, including one from Fog Creek (Joel on Software, Stack Overflow).

I don't believe you need anything beyond the regular version.

I suppose you are aware that it is typical to use Subversion with TRAC, the issue tracking system.

Ewan Todd
+2  A: 

VisualSVN Server answers most of your requirements.

From the web promo page (my emphasis):

Zero Friction Setup and Maintenance

  • One package with the latest versions of all required components
  • Next-Next-Finish installation
  • Smooth upgrade to new version

Enterprise-ready Server for Windows Platform

  • Stable and secure Apache-based Windows service
  • Support for SSL connections
  • SSL certificate management
  • Active Directory authentication and authorization with groups support
  • Logging to the Windows Event Log
  • Access and operational logging (Enterprise edition only)
  • Based on open protocols and standards
  • Configured by Subversion committer to work correctly out-of-the-box
gimel
I'ves seen this and used it for my private repository. This looks pretty good and is very easy to user. This would be my preferred setup, but I currently have to run the system on ubuntu-linux..
bombadil
+1  A: 

Running a subversion server in a VMWare instance with one of VMWare's "High Availability" tools will give you most of what you need. There are pre-built VMWare Appliances that have a Subversion server built in. http://www.vmware.com/appliances/directory/308

VMWare's HA features will give you the redundancy of the SVN server instance. (You're going to need multiple physical servers for true redundancy. If one server fails, VMWare will re-start the instance on the new server.)

I don't know of any VMWare appliances that have special backup features, but this is pretty trivial to script. Just run an 'svnadmin hotcopy' once a day, so you have a copy of the repository ready to go in case of a corruption. (On top of this, you really should be using a SAN RAID array with tape backups.)

Our setup:

  • Rack of Blade Servers
  • VMWare Infrastructure
  • Virtualized Windows 2003 Server
  • If Windows crashes or one of the blades goes down, VMWare re-starts the Windows instance.
  • CollabNet Subversion Server, running Apache with SSPI authentication
  • SVN repo lives on a SAN
  • Nightly svnadmin hotcopy and verify of the repo (to another directory on the SAN), so we have a "hot" backup of the repo ready to go in case of a corruption problem.
  • Nightly tape backups of everything
  • Tapes taken offsite regularly

The cost of the server hardware and VMWare is going to be your biggest issue (assuming you don't already have this.) If you're not willing to make this kind of cash outlay, it may be worth looking at a hosted SVN provider.

msemack
Thanks a lot, this looks like the answer to the HA requirements. Any suggestions on the user-admin and monitoring issues?
bombadil
We use the Apache SSPI authentication, so everything authenticates against Active Directory. When you use http for repo access, user access is largely controlled by Apache. If you use the svn:// protocol, there is a config file in the repo you use the define user accounts. If you use a tool like VisualSVN server (mentioned elsewhere on this page), it gives you some higher-level user management tools.As for monitoring: What exactly do you want to monitor? Apache will give you its web server logs. Subversion itself has a log of who changed what files in the repo, and when.
msemack
For monitoring, I was thinking about 2 things. For one, general data volume and client information (I guess, this can be retrieved with apache monitoring tools like awstats). On the other hand, I was thinking about svn and project specific information as seen in the commercial Fisheye (http://www.atlassian.com/software/fisheye/ ), but for free with perhaps a reduced feature-set.
bombadil
A: 

I can vouch for visual SVN. I use the free version for our team of 4 developers, and it does everything it says on the tin reliably. Installation also took all of 5 minutes. That said, it does require a windows box.

Tim Siney
A: 

If you aren't already committed to using svn you might want to consider GitHub.

Chris Huang-Leaver
git is not a solution, since we are already committed to svn. In addition git is not useful for java-development (no integration, linux only etc.)
bombadil
The 'already committed' to svn is a (semi) valid argument, and covered in my answer. The 'not useful for java' is nonsense, the Linux only is factually incorrect. (google 'tortoise git'). Making decisions on hubris and gut instinct, then scrabbling to find 'evidence' to support it is 'very very' dangerous thing indeed.
Chris Huang-Leaver
The Problem with git and java is, that I need an integrated development environment in eclipse with advanced gui features (diffs, history, code refactoring etc). I haven't seen a git plugin for eclipse, that provides this functionality.. Git is fine, if you can work on the command line only (and I know, that there are some clients, that work on windows). But I don't want to start a flame... It just is not an option in our specific case...
bombadil
int. with Eclipse is on its way :-) Count yourself lucky, we're stuck with CVS!
Chris Huang-Leaver