分布式版本控制和访问控制

时间:2013-06-08 11:07:25

标签: version-control

是否有任何分布式版本控制系统能够授予具有子文件夹粒度级别的用户的读/写访问权限?

即。如果我想为UserA授予/foo树的访问权限,而仅为UserB授予/foo/bar

的权限?

据我所知,UPD对于Git来说是不可能的(它只将存储库视为一个整体)。 Bazaar和Mercurial怎么样?

UPD仍在寻找更好的答案。

3 个答案:

答案 0 :(得分:0)

编辑:刚检查了评论,OP正在寻找读/写访问权限,因此撤回了这个答案。

不,对Git来说并非不可能。 Gitolite项目非常成熟,并且多年来一直提供细粒度的访问权限(repo / branch / directory / file level权限)。

有关限制对单个文件所做更改的具体示例,请访问:http://gitolite.com/gitolite/vref.html#NAME

一些简单的例子是here,关于定义规则的更详细的文档也是available here

编辑:添加了另一个链接

答案 1 :(得分:0)

可以使用SCM-ManagerPath Writeprotect Plugin向Mercurial,Subversion或git添加写保护。您可以定义路径以及对其具有写访问权限的用户或组。

答案 2 :(得分:0)

正如评论中提到的@ maxim1000,实现此目的的最佳方法可能是运行Subversion服务器,该服务器可以在每个路径和每个分支的基础上对读取和写入执行细粒度的访问控制。如果用户想要DVCS客户端的强大功能,他们可以使用git svnhg svn将他们有权访问的存储库部分导入DVCS并进行相应的交互。甚至可以让具有更高访问权限的人将更改合并到具有较低访问权限的人的子树,而不会丢失DVCS实现提供的优秀合并工具。