我需要创建和操作多个学生 SVN 存储库,并创建一些细粒度的访问控制,以防止学生作弊,同时允许教师访问修订历史记录。
对于单个存储库,我可以使用 WebDAV 并配置AuthzSVNAccessFile
以允许访问。但我需要多个存储库。我可以设置多个<Location>
指令,但这很冗长,而且每当我需要添加或删除存储库时,都需要重新加载 Apache。有一种方法可以用 指定包含多个存储库的“父路径” SVNParentPath
,但是否有相应的方法将 authz 文件映射到这些存储库?
答案1
实际上,您可以使用单个 authz 文件管理多个存储库的权限。例如:
[foo:/]
@students = rw
@instructors = r
[bar:/]
@students = rw
@instructors = r
在这种情况下,冒号前的名称是存储库的名称,即后面路径的第一个组成部分SVNParentPath
。
答案2
您可以使用 .htaccess 文件进行基本 HTTP 身份验证,或者使用 mod_auth_mysql 从 SQL 数据库中提取身份验证信息。从这一点开始,您可以非常轻松地构建一个前端来管理 SQL 表中的权限。