I need to create and operate a number of student SVN repositories, and create some fine grained access controls to prevent students from cheating while allowing instructors to access the revision history.

For a single repository, I can use WebDAV and configure AuthzSVNAccessFile to permit access. But I need multiple repositories. I could set up multiple <Location> directives, but that's verbose, and anytime I need to add or remove a repo it requires an Apache reload. There's a way to specify a "parent path" that contains a number of repos with SVNParentPath, but is there a corresponding way to map authz files to those repos?


You can actually manage permissions for multiple repositories with a single authz file. For example:

@students = rw
@instructors = r

@students = rw
@instructors = r

In this case the name before the colon is the name of the repository, the first component of the path after SVNParentPath.

  • Excellent; I was starting to worry this wasn't possible! – jldugger Sep 24 '09 at 19:13

You could use .htaccess files do use either basic HTTP authentication, or use mod_auth_mysql to pull authentication information from a SQL database. From that point it would be pretty straightforward to build yourself a frontend to manage permissions in the SQL tables.

Your Answer

