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