我正在尝试为一大堆用户设置SVN回购。不同的用户需要对存储库的区域具有不同级别的访问权限。一个简单的例子可能是前端工程师需要访问“视图”和“控制器”而不是“模型”,而后端工程师需要访问“控制器”和“模型”而不是“视图”。
它需要是一个存储库,因为(据我所知),这是确保提交触及多个模块的唯一方法是原子的。
是否有一种细粒度的方法来控制用户对存储库的访问?
谢谢!
答案 0 :(得分:4)
您可以使用基于路径的授权。您可以为文件中的每个路径定义读取或写入权限;权限是继承的。
例如,使用组(@groupname):
# Everyone get read access
[/prj1/trunk]
@backend = R
@frontend = R
#Specific rights
[/prj1/trunk/model]
@backend = RW
[/prj1/trunk/controllers]
@backend = RW
@frontend = RW
[/prj1/trunk/view]
@frontend = RW
您可以从svnserve.conf或httpd.conf引用此文件。 (有关完整说明,请参阅上一个答案中的参考。)
答案 1 :(得分:2)
是的,您可以在SVN中使用path-based authorization,但我非常不鼓励。
首先,当您打开存储库时,它会对存储库的性能产生很大影响。其次,仅仅因为前端开发人员“只需要”访问视图和控制器,他们正在处理的功能中发生了什么需要更改模型?要么他们自己做出更改并将其与更新一起提交,要么他们要求“模型”开发人员执行此操作,并且需要额外的一天来组织所有内容。
只要您已经进行了代码审查,那么额外的箍就没有意义了。
即使您没有代码审查,提交历史记录也可以告诉谁更改了代码的哪个部分。如果你真的不相信前端开发人员在没有适度的情况下不会踩到其他人的脚趾,那么你真的相信他们可以做任何事情吗吗?