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. 代码目录在不同层级里,使用子文件夹 覆盖 父级 设置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/403155.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt登录窗口

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget),btn(new QPushButton("取消", this)),login_btn(new QPushButton("登录", this)) { ui->setupUi(this);thi…

Llama 3.1深度解析:405B、70B及8B模型的多语言与长上下文处理能力

Llama 3.1 发布了!今天我们迎来了 Llama 家族的新成员 Llama 3.1 进入 Hugging Face 平台。我们很高兴与 Meta 合作,确保在 Hugging Face 生态系统中实现最佳集成。Hub 上现有八个开源权重模型 (3 个基础模型和 5 个微调模型)。 Llama 3.1 有三种规格: …

法线纹理贴图计算(切线空间世界空间)

效率: 在切线空间中计算,效率更高,因为可以在顶点着色器中就完成对光照、视角方向的矩 阵变换,计算量相对较小。( 矩阵变换在顶点着色器中计算) 在世界空间中计算,效率较低,由于需要对法线贴图进行采样&a…

mybatis druid postgresql statement超时原理原理

yaml设置超时 mybatis-plus:mapper-locations: classpath:/mapper/*.xml # MyBatis Mapper XML文件的位置type-aliases-package: com.company.mi.entity # 实体类所在的包configuration:default-statement-timeout: 10 configuration 设置超时 BaseStatementHandler设置超时 …

Thread 类的基本用法

目录 什么是线程? 编写多线程程序 线程创建的方式 继承 Thread 类,重写 run 方法 实现 Runnable 接口,重写 run 方法 匿名内部类创建 Thread 子类 匿名内部类创建 Runnable 子类对象 lambda表达式 Thread 类和常用方法 Thread 的常…

node.js part1

Node.js Node.js 是一个跨平台JavaScript 运行环境,使开发者可以搭建服务器端的 JavaScript 应用程序。作用:使用Node.js编写服务器端程序 编写数据接口,提供网页资源浏览功能等等 前端工程化:为后续学习Vue和React等框架做铺垫. …

基于CDIO概念的人工智能物联网系统开发与实施的人才培养研究

目录 1. 引言(Introduction) 2. AIoT技术及其培训特点(The Characteristics of AIOT and Its Training) 3. 基于CDIO概念的AIoT课程改革(CDIO Concept-based Reform of AIOT Course) 4. AIoT课程内容安…

Idea里配置Maven版本

一、安装Maven 1. 官网下载maven地址: Maven – Download Apache Maven Binary是可执行版本,已经编译好可以直接使用。 Source是源代码版本,需要自己编译成可执行软件才可使用。tar.gz和zip两种压缩格式,其实这两个压缩文件里面包含的内容是…

Verilog刷题笔记50

题目: Given the following state machine with 1 input and 2 outputs: 解题: module top_module(input in,input [9:0] state,output [9:0] next_state,output out1,output out2);assign next_state[0]~in&(state[0]|state[1]|state[2]|state[3]…

Java方法01:什么是方法

本节视频链接:Java方法01:什么是方法?_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV12J41137hu?p45&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 Java中的‌方法‌是一段执行特定任务的代码片段,‌它是程序的基本构…

C#中的S7协议

S7协议-S7COMM S7COMM 进行写 CTOP->PDU type已知枚举值 0X0E连接请求0x0d连接确认0x08断开请求0x0c断开确认0x05拒绝访问0x01加急数据0x02加急数据确认0x04用户数据0x07TPDU错误0x0f数据传输 S7Header->ROSCTR已知枚举值 0X01JOB REQUEST。主站发送请求0x02Ack。从站…

Android MediaRecorder 视频录制及报错解决

目录 一、start failed: -19 二、使用MediaRecorder录制视频 2.1 申请权限 2.2 布局文件 2.3 MediaRecordActivity 2.4 运行结果 三、拓展 3.1 录制视频模糊(解决) 3.2 阿里云OSS上传文件 3.2.1 权限(刚需) 3.2.2 安装SDK 3.2.3 使用 相关链接 一、start failed…

基于spring boot的小型诊疗预约平台的设计与开发

TOC springboot262基于spring boot的小型诊疗预约平台的设计与开发 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进…

C++之模版初阶

目录 前言 1.泛型编程 2.函数模版 2.1函数模版概念 2.2函数模版格式 2.3函数模版的原理 2.4函数模版的实例化 2.5模版参数的匹配原则 3.类模版 3.1类模版的定义格式 3.2类模版的实例化 结束语 前言 前面我们学习了C的类与对象和内存管理,接下来我们继续学习…

【等保测评】Mysql测评中使用的命令汇总

一、身份鉴别 a) 应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换; mysql -uroot -p 查看登录是否需要输入口令鉴别用户身份 select user,host from mysql.user 查看是否存在相同账户…

苹果手机怎么清理重复照片的解决方案

随着智能手机摄像头技术的飞速发展,我们越来越依赖iPhone来记录生活中的点点滴滴。不可避免地,这也导致了大量重复照片的产生,这些重复照片不仅占用了宝贵的存储空间,还使得照片库显得混乱无序。本文将介绍苹果手机怎么清理重复照…

【项目实战】C++视频共享点播系统

目录 一、项目介绍 1.1 对视频共享点播系统的认识 1.2服务端程序负责功能 1.3 服务端功能模块划分 1.4 项目界面演示 1.5预备知识 二.环境搭建 2.1 安装 Jsoncpp 库 2.1.1 使用jsoncpp 2.2 引入httplib库 2.2.1 安装Git(如果你的系统尚未安装Git&#xf…

【算法】弗洛伊德(Floyd)算法求最短路径

目录 1.弗洛伊德(Floyd)算法介绍 2.弗洛伊德算法图解分析 2.1思路: 2.2图和矩阵的准备 2.3弗洛伊德算法的步骤: 2.4疑问 3.弗洛伊德算法的代码实现 3.1创建图并显示距离表与前驱表 3.2完整代码 1.弗洛伊德(Flo…

qt笔记之qml中的TextEdit、TextInput、TextArea、TextField的区别

qt笔记之qml中的TextEdit、TextInput、TextArea、TextField的区别 code review! 文章目录 qt笔记之qml中的TextEdit、TextInput、TextArea、TextField的区别一.对比二.C环境中类似功能的控件 一.对比 TextEdit、TextInput、TextArea和TextField都是用于文本输入的组件&#…

硅谷物理服务器有哪些关键优势和特点

硅谷的物理服务器设施全球知名,为各类企业提供了卓越的IT基础设施支持。下面将逐一探讨硅谷物理服务器的关键优势和特点,rak小编为您整理发布硅谷物理服务器有哪些关键优势和特点。 1. 卓越的性能 高性能计算能力:硅谷的物理服务器采用最新一…