我们目前有一个 SVN 存储库设置,并想切换到 GIT,但我们目前不确定哪种具体的 GIT 设置适合我们。
我们目前正在使用 SVN(带 Authz)+ Apache(带 WebDAV 和 LDAP)。我们对 SVN 使用 Authz,因为我们需要对存储库中的子目录进行精细的访问控制(并非每个用户都应该读取/写入所有目录)。
有没有办法移植这个 Authz 权限文件,以便 GIT 存储库使用此权限控制?或者我们有没有其他方法可以用单个文件控制对 GIT 的权限?请记住,我们已经安装了 LDAP,因此权限文件应该只是将用户名映射到授权目录。
答案1
看起来你可能有点过早地转向了 git(顺便说一下,它不是一个首字母缩略词)——因为 git 的数据存储和访问控制模型与 SVN 完全不同。
基于每个存储库的访问控制并不难;虽然我手头没有任何配置示例,但如果您使用 HTTPS 访问,则应该不难模拟,因为身份验证和授权模型与 SVN 非常相似。对于每个分支的访问控制,我知道可以使用 gitolite 来完成(尽管默认情况下它是一个 SSH 访问系统,但经过一番思考,它可能会被改成使用 HTTPS)。
理论上,你可以使用一些巧妙制作的钩子对基于路径的写入访问进行一些操作,但是你真的无法进行读取访问控制,因为 git 的整个模型是跨整个 repo 提交,所以你无法阻止人们查看 repo 中的所有数据。
答案2
没运气。你不能用任何整体存储库(与基于路径的相反)