嗨,我有一个 subversion 存储库,希望能够将某些文件标记为对某些用户或某些配置可用/可见/可访问。本质上,我们希望根据指定的角色对结帐/分支/标签等中存在哪些文件进行细粒度控制。
我认为会有一些方法可以在服务器上设置基于用户的可见性,但也认为可以使用特定的文件/文件夹属性来代替。是否已经存在针对此用例的解决方案,或者是否有使用本机 SVN 工具的巧妙解决方案?
嗨,我有一个 subversion 存储库,希望能够将某些文件标记为对某些用户或某些配置可用/可见/可访问。本质上,我们希望根据指定的角色对结帐/分支/标签等中存在哪些文件进行细粒度控制。
我认为会有一些方法可以在服务器上设置基于用户的可见性,但也认为可以使用特定的文件/文件夹属性来代替。是否已经存在针对此用例的解决方案,或者是否有使用本机 SVN 工具的巧妙解决方案?
有一种方法,至少在每个目录的基础上设置访问控制。有了这个,您可以将签出和提交更改的能力设置为两个单独的访问。例如,某人签出(读取)代码,但不提交更改(写入),而其他人可以签出并提交更改(读取和写入)。
如果你不介意可见性,只是想控制提交更改的能力,你可以使用我的pre-commit钩子。
此挂钩将允许您将权限分配到文件级别,并将使用 LDAP/Windows Active Directory 组获取权限。
大多数时候,我发现我可以使用 LDAP 设置来限制哪些组可以访问特定的存储库(例如,只有开发人员和 QA 人员应该能够看到存储库),但是一旦你这样做了,只要您可以定义谁可以进行更改,就没有人关心使其他人不可见单个目录或文件。我的钩子可以做到这一点。
我更喜欢使用单独的存储库(可以由单个 Apache 实例提供服务)来使一个组的视线远离另一个组的文件,而不是尝试使用 Subversion 的访问控制来做到这一点。