SVN权限控制解析

一、基础数据说明

1. 代码目录存在多级

14ae7c81c3414c32b059d9919c450ea7.png

图1-1 SVN目录

如图1-1:

  1. 第一级目录是 科顺,代表 科顺项目,项目文件包括 文档、代码等等。
  2. 第二级目录 分别是                             
  •                                        2.1 resources 用于存放文档,开发和实施均需要用到。
  •                                        2.2 trunk 用于存放代码,此目录供开发人员使用。
  •                                        2.3 tags  用于存放代码备份,此目录开发经理 使用。 

     3. 第三级目录,仅此trunk下的文件夹做说明,用于存放不同模块的代码(我们内部称之为子产品)。

     4.第四级目录,是一个模块的代码(即一个子产品),一个子产品可以包括多个页面,也可以包含多种技术栈,例如 基于ANDROID开发的PDA, 基于 VUE的前端工程。不同的技术栈的开发使用不同的目录存放代码。

2. 角色存在多级

97605ef3673346f4b0bd26b79ef94281.png

图1-2-1 角色层级1

0df792e6a8dc418f9603a10b8916cd13.png

图1-2-2 角色层级2

如图1-2-1 和 图1-2-2所示,

  • 第一级角色  BS_PROJECTS  ,这个角色用于关联所有参与项目交付的人员,包括 开发、实施、测试 等人员。
  • 第二级角色  BS_PROJECTS_XXX  , XXX 通常为客户名称的首字母,该角色用于关联这个项目所有人员。
  • 第三级角色  BS_PROJECTS_XXX_Android 用于关联参与XXX项目的Android 开发人员。

二、希望的控制效果

  1. 参与项目的人员 都能进入SVN项目目录
  2. 只有参与这个项目的人员 才能读写对应项目的文档和代码。
  3. 实施可以读写文档,开发可以读写文档 并读写代码。
  4. 不同技术栈的开发,只能读写相应技术栈的代码。

三、规则说明

要实现上面的控制效果,我们需要充分理解SVN的权限设置规则,下面结合例子讲规则。

1、多级文件夹

a. 继承与覆盖

【文件夹层级】: Repositories/BS_Projects/科顺

  1. BS_Projects包含了多个项目,每个项目是一个文件夹,比如“科顺”是其中一个文件夹。

【角色层级】:BS_PROJECTS、BS_RPJECTS_KS、BS_PROJECTS_KS_Portal

  1. BS_PROJECTS 所有的开发人员;
  2. BS_RPJECTS_KS 参与科顺项目的开发人员;
  3. BS_PROJECTS_KS_Portal 科顺项目BS前端的开发人员;
  4. BS_PROJECTS_KS_Service 科顺项目后端的开发人员;
  5. BS_PROJECTS_KS_WPF  科顺项目WPF界面开发人员
  6. BS_PROJECTS_KS_Android  科顺项目Android界面开发人员

29a12e62c88f4a81b39de4ff0179e76f.png

ed7107dbbf7f472da2848cee7e4b682e.png

【继承逻辑】

  • 上级文件夹(BS_PROJECTS)设置了 角色Designer的访问权限,下级文件夹(BS_PROJECTS_科顺)继承了访问权限;
  • 继承过来的角色权限,如上图在角色图标上不带红色星号;在本级文件夹设置的角色权限,角色图标上会带红色星号

【覆盖逻辑】

  • 所有的 BS_PROJECTS角色 对 BS_PROJECTS文件夹(上级文件夹)有访问权限;
  • 但在 BS_PROJECTS/科顺 这一级文件夹里,去除了其它项目成员的读写权限,只保留了科顺项目组开发的读写权限。

2、同级文件夹多个角色

a. 多个角色取并集

aa0047b6b9dd4ff68f5c5e2d0369254a.png

【优先级】

如图本级目录为BS_PROJECTS/科顺/trunk, 带*的设置为本级设置,不带星的为继承过来的设置,本级设置优先级大于继承设置。

并集

本级设置里取并集, 即本级设置了两个角色,这两个角色同时包含开发人员张三,一个角色是无权,一个角色是有权,那最终结果是有权。

b. 角色与用户取并集

7906bdbff3014cf7ab3f4e559216d545.png

如图:lxz 为开发人员账号,BS_PROJECTS_KS_Android 为角色。

【优先级】

在SVN权限设置里,如果本级为用户设置了权限,同时本级也为角色设置了权限。并且这个角色包含这个用户,那么 这两个设置没有优先级区分,按有权的并集处理。

并集

用户设置无权,角色设置有权,按并集逻辑,这个用户一样是有权的。

四、建议设置

  1. 角色、用户结合业务群组建多层级;
  2. 代码目录在不同层级里,使用子文件夹 覆盖 父级 设置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值