哪个版本控制允许文件级别的访问权限?

Dom*_*nik 2 svn git cvs version-control

我以前使用过 SVN,因为我有一个较大的项目,并且经常更换开发人员,所以我想在包或文件级别定义文件访问。例如,给予基本类的完全访问权限,但在某些情况下只允许特殊用户读取和提交。

是否有版本控制系统可以实现这一点,例如 GIT、CVS 或 SVN,或者是否有解决方法可以做到这一点?我没有自己的服务器,但我使用 Codesion 作为托管服务。

Die*_*Epp 5

CVS 很糟糕(相比之下),你不应该碰这些东西。新的 DVCS(例如 Git、Hg、Bzr 等)不允许您设置比整个存储库级别更精细的读取权限。(写权限相当简单。)

您可以使用 SVN 设置细粒度的读/写权限(请参阅本书。请注意,拒绝对存储库的某些部分进行读取访问是一个兔子洞。我建议将项目拆分为单独的(大部分是独立的)模块,并授予或拒绝对每个模块作为一个整体的访问权限。例如,

project/  [world readable, writable by some]
moduleA/  [readable/writable by "team A"]
moduleB/  [readable/writable by "team B"]
Run Code Online (Sandbox Code Playgroud)

您可能还想退后一步,问问自己到底为什么需要细粒度的访问。如果您担心开发人员偷走您的源代码,那么您就遇到了技术无法解决的深层问题。如果您担心存储库中的管理员密码,请删除管理员密码。我想说这种访问控制的主要用例是让客户通过 SVN 访问他们所购买的功能的代码。