8

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.

3
  • 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. Jun 5, 2010 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 . Jun 7, 2010 at 17:29
  • I also found a list (from 2008) of other possible projects at Collabnet: "Best Web-based Admin Interface for Subversion?" Jun 7, 2010 at 19:35

9 Answers 9

1

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'.

1
  • Thanks for that. We're a government research institution, and work with staff from many universities. We sometimes work with multiple LDAP servers, etc. Oct 22, 2010 at 14:37
5

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 ;)

1

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.

1
  • 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. Jun 7, 2010 at 17:37
1

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

1
1

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.

1

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.

1

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!

1
  • No updates since 2009. Aug 22, 2018 at 9:16
1

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

2
  • 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'? Jun 16, 2010 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. Jun 17, 2010 at 3:53
0

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/

Not the answer you're looking for? Browse other questions tagged .