Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

We run a SVN repository. Some of our more advanced users need to be able to perform some SVN administration without relying on the system administrator.

They need to be able to do things like create SVN repositories, delete SVN repositories,, and perform commands like 'svnadmin dump' and 'svnadmin load'.

We'd like to avoid SSH access on these FreeBSD machines, and would rather provide a service interface through a Web UI.

I'm looking for a simple script (or a small number of scripts) which use Perl or PHP. I found svnadmin (From Jochen Hoenicke) or svnadmin.pl (From doug munsinger), but was hoping to find something with a larger user community or which has been recommended by others.

It looks like Trac allows SVN administration, but comes with may more features then we need.

share|improve this question

closed as off-topic by MadHatter, Tom O'Connor Aug 15 at 13:49

This question appears to be off-topic. The users who voted to close gave this specific reason:

If this question can be reworded to fit the rules in the help center, please edit the question.

    
From your wording it appears that you have rejected svnadmin simply because you don't think it has a large enough user base. Am I reading that correctly? More importantly, does it fit your needs or not? How many others use it shouldn't even be a factor. –  John Gardeniers Jun 5 '10 at 11:17
    
@John Gardeniers : We didn't reject svnadmin or svnadmin.pl . However, if I had a choice between a project with one author and a project with a community I will usually choose the latter, as long as both projects fit my needs. I tend to trust a community-backed script more, because a community will often be able to put forth improved optimizations, security fixes, answer questions, etc. That said, we're probably going to go with svnadmin, due to it's simple nature and it's readable code. Not that there's anything wrong with svnadmin.pl . –  Stefan Lasiewski Jun 7 '10 at 17:29
    
I also found a list (from 2008) of other possible projects at Collabnet: "Best Web-based Admin Interface for Subversion?" –  Stefan Lasiewski Jun 7 '10 at 19:35

9 Answers 9

up vote 1 down vote accepted

Late answer as I'm new to serverfault: we (university compsci department) developed our own self-service svn webinterface and made it available as open source. Named repocafe, available at http://repocafe.cs.uu.nl/. Modelled to our own needs it can deal with single or multiple ldap servers and guest users. Maybe a bit overkill for 'simple'.

share|improve this answer
    
Thanks for that. We're a government research institution, and work with staff from many universities. We sometimes work with multiple LDAP servers, etc. –  Stefan Lasiewski Oct 22 '10 at 14:37

Its seems things have changed overtime. Here's another script that I feel seems to be a good option for svn management: http://www.svn-access-manager.org/

share|improve this answer

Hey, We have implemented this with our new svn distribution a year ago. It has worked out really well.

We have multiple development teams and they their own projects. So, we brought all info into LDAP and we granted team managers write access to directory information tree (DIT) for subversion:

ou=groups,ou=subversion,ou=apps,dc=example,dc=com ou=repositories,ou=subversion,ou=apps,dc=example,dc=com

The above 'groups' organizational unit is custom groups for subversion repositories/projects. Also, we use 'viewvc' with https to view repositories in svn.

The apache server uses ACL file created based on LDAP DIT (given above) to give read-write access to different users and groups. There is a cron that reads the LDAP DIT every five minutes and created the ACL file. So, if there is a new repositories added with read-only and read-write users/group. The cron will read that and create the repositories, and incorporate that information in ACL file for the newly created repository. It is quite neat. You need to create an LDAP schema based on your requirement obviously. We have all users/hosts information in LDAP so, it wasn't a big deal to extend it to include svn info.

-F

share|improve this answer
    
We happen to have a large LDAP installation here already. Interesting idea. Am I correct in understanding that you have one SVN repo per 'ou=repositories,ou=subversion,ou=apps,dc=example,dc=com'? –  Stefan Lasiewski Jun 16 '10 at 22:48
    
You only store the name of the repo or project in LDAP. Say, I have a new repo called 'myWebRepo', in LDAP that would show as: cn=myWebRepo,ou=repositories,ou=subversion,dc-example,dc=com The CRON actually runs a ruby script (you could have written it in Perl or even Bash). I wrote it in Ruby for fun actually. The ruby script know that all repositories exist in 'ou=repositories,dc....'. It gathers all the names of the repo and the attributes, i.e. readonly-users etc etc. The ruby checks if repo already exists. If it doesn't, meaning it is a new rep. It creates it and updates ACL file. –  Nikolas Sakic Jun 17 '10 at 3:53

Another suggestion from the svn dev mailing list from Dec 09, so its quite recent!

Please check out my new open source tool for managing SVN permissions!

Managing SVN rights for multiple repos mirrored at multiple locations can be a daunting task. svnDashboard provides a simple, web-based, AJAX-enabled graphical user interface for managing several repositories and users at once.

http://sourceforge.net/projects/svndashboard/

New v1.1.3.140 - Now includes a DB setup script! Some of you complained that this was missing, and rightfully so! It is now included, along with a brief readme file.

Coming soon in version 2: • Enhanced UI functionality • Support for multiple mirrored locations • Repository statistics • Error messages • Search • and more!

share|improve this answer
    
Looks interesting. Thanks! –  Stefan Lasiewski Jun 14 '10 at 15:53

In the end, we chose to go with svnadmin (From Jochen Hoenicke).

This won because it was a single, simple file with 400 lines of code, and is something that we could fix ourselves if necessary. Unfortunately it doesn't have a user community or many recommendations. But it's simplicity wins out. Ask me in 6 months if we recommend it ;)

share|improve this answer

I'll answer my own question, for posterity.

I also found USVN, which is a PHP-based SVN-administration tool. It has gone through several iterations, has a user community and a shiny featurefull website,

However, the USVN project looks a little stale. USVN was a project done by students at a University, and now the admins have graduated and gone on to find jobs, and may not have time to contribute to the project anymore. There hasn't been an update in 9 months, the bug tracker doesn't look active, and the forums are filled with spam and look a bit unmaintained, so maybe the community is less active then it first appears. This isn't all bad and I hope these people do well, but I'd be worried about hooking into a stale project.

The project uses 200 files (Not counting the 2000 files from Zend), which may be hard fur us to audit and maintain, and may be more complexity then we're looking for. Plus, this project relies on Zend, which is suffering from political problems on FreeBSD.

share|improve this answer

There's "User friendly svn" USVN. I think you'll find that most of the community effort for something like this is small - SVN is actuvely maintained, but the admin tools are one part that do not. They tend to be written once and work forever, so these GUI tools do not need to change either. So - don't worry too much about how large the community is in this case.

share|improve this answer

There's an Usermin module for Subversion, but I'm unsure that it would let you do what you need.

share|improve this answer
    
We don't use Webmin or Usermin, but thanks. For the record, looks like the following module might do this: 'Virtualmin SubVersion Repositories 4.0' module under webmin.com/cgi-bin/search_third.cgi?cat=Virtualmin –  Stefan Lasiewski Jun 7 '10 at 17:36

Trac and Redmine are the only two I know of that do this well; but they're both aimed more at project management then simple repository administration.

share|improve this answer
    
Thanks Chris. There are a couple other projects which are on the scale of Trac and Redmine, but it would be difficult to extract just the limited functionality that we want. –  Stefan Lasiewski Jun 7 '10 at 17:37

Not the answer you're looking for? Browse other questions tagged or ask your own question.