是否有分布式版本控制系统可以对子文件夹粒度级别的用户授予读写权限?
例如,如果我想为UserA提供/foo树的访问权限,而只为UserB提供/foo/bar树的访问权限?
据我所知,这对于Git来说是不可能的(它只将存储库作为一个整体来对待)。那Bazaar和Mercurial呢?
UPD仍在寻找更好的答案。
发布于 2013-06-12 00:13:52
EDIT:刚刚检查了评论,OP正在寻找读/写访问权限,因此收回了这个答案。
不,这对Git来说不是不可能的。Gitolite项目非常成熟,多年来一直提供细粒度的访问权限(存储库/分支/目录/文件级权限)。
有关限制对单个文件的更改的特定于的示例位于以下位置:http://gitolite.com/gitolite/vref.html#NAME
available here中有几个简单的例子是here,关于定义规则的更详细的文档也在这里。
编辑:添加了另一个链接
发布于 2013-06-12 15:57:07
通过使用SCM-Manager和Path Writeprotect Plugin,可以在Mercurial、Subversion或git中添加写保护。您可以定义路径以及对其具有写访问权限的用户或组。
发布于 2013-06-15 01:13:12
正如@max1000在评论中指出的那样,实现这一点的最好方法可能是运行Subversion服务器,它可以在每个路径和每个分支的基础上对读写进行细粒度的访问控制。如果用户想要DVCS客户端的强大功能,他们可以使用git svn或hg svn将他们有权访问的存储库部分导入到DVCS中,并进行相应的交互。拥有较高访问权限的用户甚至可以合并来自具有较低访问权限的用户对子树的更改,而不会丢失DVCS实现提供的优秀合并工具。
https://stackoverflow.com/questions/16998888
复制相似问题