之前我使用过SVN,因为我有一个更大的项目,我经常更改开发人员的工作,我想在包或文件级别定义文件访问。例如,提供对基本类的完全访问权限,但在某些情况下仅允许特殊用户的读取和提交。
是否有允许这样的版本控制系统,如GIT,CVS或SVN,或者是否有解决方法?我没有自己的服务器,但我使用的是代码作为托管服务。
答案 0 :(得分:4)
CVS太可怕了(相比之下),你不应该碰这些东西。新的DVCS(如Git,Hg,Bzr等)不允许您将读取权限设置为比整个存储库级别更精细。 (写权限相当容易。)
您可以使用SVN设置细粒度的读/写权限(请参阅book)。请注意,拒绝读取访问存储库的某些部分是一个漏洞。我建议将项目拆分为单独的(主要是自包含的)模块,并授予或拒绝对每个模块的访问权限。例如,
project/ [world readable, writable by some]
moduleA/ [readable/writable by "team A"]
moduleB/ [readable/writable by "team B"]
您可能还想退后一步,问问自己为什么需要细粒度访问。如果您担心开发人员潜逃您的源代码,那么您就会遇到无法通过技术解决的深层问题。如果您担心存储库中的管理员密码,请删除管理员密码。我想说这种访问控制的主要用例是让客户SVN访问他们购买的功能的代码。