SVN实现精细的目录访问权限

合集下载

svn 正则匹配路径分配权限

svn 正则匹配路径分配权限

svn 正则匹配路径分配权限版本控制系统(Version Control System,简称 VCS)是软件开发过程中必不可少的一部分,其中,Subversion(svn)是一个常用的版本控制系统。

在使用svn 进行代码管理时,我们经常需要对不同路径的文件或目录设置不同的权限。

我们可以通过正则表达式来匹配路径,并将相应的权限分配给这些路径。

首先,我们需要在svn 的配置文件中设置路径匹配规则。

通过编辑svnserve.conf(对于svnserve 服务器)或者authz 文件(对于Apache HTTP Server)来实现。

下面是一些示例路径匹配规则的正则表达式:1. 路径匹配所有 .txt 文件,在根目录及其子目录下```[/](.*\/)*[^\/]*\.txt$```2. 路径匹配所有以 .doc 结尾的文件,在 trunk 目录及其子目录下```[^\/]+\/trunk\/(.*\/)*[^\/]*\.doc$```3. 路径匹配所有以 .css 结尾的文件,在 branches 目录及其子目录下```[^\/]+\/branches\/(.*\/)*[^\/]*\.css$```4. 路径匹配所有以/images 开头并以 .png 结尾的文件,在根目录及其子目录下```[/](.*\/)*images\/[^\/]*\.png$```以上是一些常见的路径匹配规则示例,你可以根据实际需求自定义正则表达式。

接下来,我们需要定义不同路径匹配规则对应的权限。

在authz 文件中,可以使用以下语法来为路径分配权限:```[路径规则]权限 = 用户名```例如,为路径 /trunk/test.txt 分配读写权限:```[/trunk/test.txt]rw = alice```这将让用户 alice 具有对 /trunk/test.txt 文件的读写权限。

使用正则表达式进行路径分配权限可以帮助我们更方便地管理代码库,确保不同用户或团队对应的路径有相应的权限。

svn的权限管理与设置

svn的权限管理与设置

Win7 系统搭建SVN 服务端和客户端图文使用方法1、安装好VisualSVN Server后,运行VisualSVN Server Manger,打开服务器的 VisualSVN 界面:2、创建仓库(repository)第一种方式:按照上图,创建新的代码库,在下图所示的文本框中输入代码名称:上图中选择“empty repostory”,则在代码库只创建空的代码库StartKit,选下面的“single-project”则在代码库StartKit下面会创建trunk、branches、tags三个子目录;3种仓库默认推荐权限设置(Nobody…不允许任何人访问All Subversion users…所有svn用户都可以Customize permissions自定义权限允许,这里下面有个按钮,我们可以过会继续设置,当然你也可以在这里设置,然后点create创建)这里有个Repository URL这个地址就是客户端获取服务器代码的地址,你可以先记下来,也可以通过右击仓库名可以获得。

前面的WIN-TV..什么的是你计算机的名字,客户端都是服务器的ip地址就行了这就是标准的branches,tags,trunk服务器版本我们现在右击整个仓库,就是MyBlog项目,我们现在来创建一个admin管理员,用户名admin,密码admin,你可以在Users查找到他,可直接修改密码点击“OK”创建完代码库后,没有任何内容在里面。

我会在这个教程的第二部分说明如何迁入源代码。

下面,我们开始安全性设置,在左侧的Users上点击右键:输入上面的信息,点击OK,我们就创建一个用户了。

按照上面的过程,分别添加用户Developer1、tester1、manager1,好了,我们开始添加这些用户到我们刚才创建的项目里:点击上图中的"Add..."按钮,在下图中选择我们刚才添加的用户,点击OK按钮:说明:大家可能注意到了下图中的Groups,是的,你也可以先创建组,把用户添加到各个组中,然后对组进行授权,操作比较简单,在此略过。

svn功能

svn功能

svn功能
SVN(Subversion)是一个版本控制系统,可以管理和跟踪文
件和目录的修改历史。

它可以帮助团队协同开发,同时提供了版本控制、分支管理、冲突解决和协同开发等功能。

首先,SVN提供了版本控制功能,在一个项目中的每个文件
和目录都有一个独立的版本号,可以随时回溯到之前的版本。

这样,即使出现了错误或者需要回滚到之前的版本,也可以很方便地还原。

其次,SVN支持分支管理,可以创建不同的分支来进行独立
开发,然后将分支合并到主分支中。

这样可以避免多人同时修改同一个文件而引发冲突的情况,并保证团队成员的并行开发。

此外,SVN还可以帮助解决冲突。

当多个团队成员同时修改
了同一个文件,并提交到版本库时,SVN会自动检测到冲突,并给出冲突标记。

然后可以使用SVN提供的冲突解决工具,
手动解决冲突或者合并文件。

最后,SVN支持协同开发。

多个团队成员可以同时在同一个
项目上工作,并共享文件和目录。

通过SVN的权限管理功能,可以设定不同的权限给予不同的团队成员,控制他们对文件和目录的访问和修改权限。

总之,SVN作为一款强大的版本控制系统,不仅提供了版本
控制、分支管理、冲突解决和协同开发等基本功能,而且还具备高度稳定性和易用性。

它已经在许多软件开发团队中被广泛
应用,提高了团队协作效率,并帮助开发人员更好地管理和追踪项目的变更历史。

svn 管理规范

svn 管理规范

svn 管理规范svn管理规范版本控制系统(Version Control System,简称VCS)是软件开发过程中非常重要的一环。

它可以帮助开发者管理和跟踪代码的变更,并且提供团队协作的平台。

其中,Subversion(简称svn)是一种常用的版本控制系统,本文将介绍svn的管理规范,以帮助团队更好地利用和维护代码库。

一、项目目录结构规范在svn中,良好的项目目录结构有助于提高代码的管理效率。

下面是一种常用的目录结构示例:/trunk:主开发分支,包含最新稳定版本的代码。

/branches:用于存放各个功能开发分支,每个分支对应一个特定的功能或任务。

/tags:用于存放各个版本的发布代码,每个版本对应一个标签。

除了上述目录外,可以根据具体项目的需求,在项目目录下添加适当的子目录,用于存放文档、配置文件等。

保持目录结构的一致性和规范性,有助于团队成员之间的协作和代码追溯。

二、提交日志规范在svn中,提交日志(Commit Log)是记录代码变更的重要信息,它对于维护代码历史、查找改动原因等都非常有价值。

因此,编写规范的提交日志是必要的。

以下是一些提交日志规范的建议:1. 简明扼要:提交日志应该简洁明了,能够快速传递变更的信息。

2. 描述变更内容:明确记录每次变更的具体内容,例如修复了某个bug、新增了某个功能等。

3. 引用相关事项:如果某次提交与特定的issue、需求或者任务相关,应该在提交日志中进行引用。

4. 避免无意义的提交:避免不必要的提交,例如空格调整、拼写错误修正等。

三、分支管理规范svn的分支功能可以帮助团队进行并行开发,不同功能模块可以在不同的分支上进行独立开发,最后再进行合并。

以下是一些建议的分支管理规范:1. 主分支保持稳定:将主分支(/trunk)保持稳定,只有经过测试和验证的代码才能合并至主分支。

2. 分支命名规范:分支命名应具备一定的可读性,可以采用功能模块的名称或者相关的任务、需求编号等。

svn的权限管理与设置

svn的权限管理与设置

Win7 系统搭建S‎VN 服务端和客户端图文‎使用方法1、安装好Vi‎sualS‎V N Serve‎r后,运行Vis‎ualSV‎N Serve‎r Mange‎r,打开服务器‎的Visua‎l SVN 界‎面:2、创建仓库(repos‎i tory‎)第一种方式‎:按照上图,创建新的代‎码库,在下图所示‎的文本框中‎输入代码名‎称:上图中选择‎“e mpty‎repos‎t ory”,则在代码库‎只创建空的‎代码库St‎a rtKi‎t,选下面的“singl ‎e-proje‎c t”则在代码库‎S t art‎K it下面‎会创建tr‎u nk、branc‎h es、tags三‎个子目录;3种仓库默‎认推荐权限‎设置(Nobod‎y…不允许任何‎人访问All Subve‎r sion‎users‎…所有svn‎用户都可以‎Custo‎m ize permi‎s sion‎s自定义权‎限允许,这里下面有‎个按钮,我们可以过‎会继续设置‎,当然你也可‎以在这里设‎置,然后点cr‎e ate创‎建)这里有个R‎e posi‎t ory URL这个‎地址就是客‎户端获取服‎务器代码的‎地址,你可以先记‎下来,也可以通过‎右击仓库名‎可以获得。

前面的WI‎N-TV..什么的是你‎计算机的名‎字,客户端都是‎服务器的i‎p地址就行‎了这就是标准‎的b ran‎c hes,tags,trunk‎服务器版本‎我们现在右‎击整个仓库‎,就是MyB‎l og项目‎,我们现在来‎创建一个a‎d min管‎理员,用户名ad‎m in,密码adm‎i n,你可以在U‎s ers查‎找到他,可直接修改‎密码点击“OK”创建完代码‎库后,没有任何内‎容在里面。

我会在这个‎教程的第二‎部分说明如‎何迁入源代‎码。

下面,我们开始安‎全性设置,在左侧的U‎s ers上‎点击右键:输入上面的‎信息,点击OK,我们就创建‎一个用户了‎。

Visual SVN权限配置

Visual SVN权限配置

Visual SVN的权限配置是在SVN_ROOT根目录下面的三个文件内1)authz:Visual SVN账户权限配置;2)authz-windows:如果使用Windows域账户,权限配置在此文件配置;3)htpasswd:账户名及密码;注:SVN正常是在每个版本库内都有单独的权限配置文件,如project、office、public等目录内都会有单独的权限配置文件,而VisualSVN将所有版本库的权限配置集中到了根目录下面。

相对配置更加简单。

我们目前使用以下两种方式进行权限的设置:1、Visual SVN图形化控制界面在该界面可以实现如下功能:1)新建用户user;2)新建组Group并添加用户user;3)配置用户user或组group对产品库如Project、Office、Public的访问权限;2、手动修改authz文件进行权限配置,但是需要注意以下几点:1)authz文件为“UTF-8 无BOM”格式,在使用记事本打开修改保存之后需要注意避免修改格式。

建议使用UltraEdit进行修改并且保存为“UTF-8 无BOM”格式。

2)authz文件目前测试发现将其中Windows2008中Copy到XP系统内本身就会发生变化,如38k大小的文件会变成48k,在将xp内的authz不做任何修改copy会SVN_ROOT 中时,VisualSVN打开时依然会提示“……\authz:1: Section header expected”错误。

由此可见在Copy到XP时文件已经发生了修改。

具体原因不详,目前直接在windows2008 server当中进行修订并保存为“UTF-8无BOM”格式,验证OK。

验证Copy到windows7 64bits中没有文件大小无变化。

王新2014年5月4日。

svn的权限管理与设置

svn的权限管理与设置

Win7 系统搭建SVN 服务端和客户端图文使用方法1、安装好VisualSVN Server后,运行VisualSVN Server Manger,打开服务器的 VisualSVN 界面:2、创建仓库(repository)第一种方式:按照上图,创建新的代码库,在下图所示的文本框中输入代码名称:上图中选择“empty repostory”,则在代码库只创建空的代码库StartKit,选下面的“single-project”则在代码库StartKit下面会创建trunk、branches、tags三个子目录;3种仓库默认推荐权限设置(Nobody…不允许任何人访问All Subversion users…所有svn用户都可以Customize permissions自定义权限允许,这里下面有个按钮,我们可以过会继续设置,当然你也可以在这里设置,然后点create创建)这里有个Repository URL这个地址就是客户端获取服务器代码的地址,你可以先记下来,也可以通过右击仓库名可以获得。

前面的WIN-TV..什么的是你计算机的名字,客户端都是服务器的ip地址就行了这就是标准的branches,tags,trunk服务器版本我们现在右击整个仓库,就是MyBlog项目,我们现在来创建一个admin管理员,用户名admin,密码admin,你可以在Users查找到他,可直接修改密码点击“OK”创建完代码库后,没有任何内容在里面。

我会在这个教程的第二部分说明如何迁入源代码。

下面,我们开始安全性设置,在左侧的Users上点击右键:输入上面的信息,点击OK,我们就创建一个用户了。

按照上面的过程,分别添加用户Developer1、tester1、manager1,好了,我们开始添加这些用户到我们刚才创建的项目里:点击上图中的"Add..."按钮,在下图中选择我们刚才添加的用户,点击OK按钮:说明:大家可能注意到了下图中的Groups,是的,你也可以先创建组,把用户添加到各个组中,然后对组进行授权,操作比较简单,在此略过。

SVN在Windows下的权限分配

SVN在Windows下的权限分配

SVN在Windows下的权限分配修订记录日期修订版本修改章节修改描述作者2008-10-20 1.0 匿名权限分配睢攸岚2008-11-9 2.0 用户权限分配郝阔君、乔良一、 使用说明本文档的目的是指导SVN(Subversion)初学者,可以通过使用SVN来进行版本控制和人员权限分配。

阅读完本文档你将有如下收获:¾熟悉SVN服务器端的权限分配;¾熟悉SVN客户端的版本回溯;二、 阅读前的准备本示例使用的SVN服务器版本号为[Subversion-1.4.5],使用的的客户端版本号为[TortoiseSVN 1.4.7],本示例不指导服务器端和客户端的安装,如果您想了解权限分配部分请确保您至少安装了SVN服务器端,如果您想了解版本回溯部分请确保您至少安装了SVN客户端。

下面开始正式介绍。

三、 创建SVN仓库创建一个空文件夹,取名svnroot(仓库名,自己任意取),右键文件夹选择[Create repository here…],如下图所示:单击确定后会出现如下图选择创建数据库类型对话框,选择默认的[FSFS]本地文件系统即可,单击确定提示您创建成功:下面创建一个启动服务的批处理文件,文件内容如下图所示,双击运行该批处理文件后,相应的仓库即启动服务:至此,您已经成功创建了本地SVN仓库,只要启动服务,别人就可以通过您的仓库进行相关操作。

四、 SVN的版本回溯功能首先你需要在客户端创建一个连接仓库的本地文件夹,利用Checkout下载服务器上你有权限操作的内容,然后如下图所示操作:在下图所示地方填入您要回滚得版本号,单击OK即可:五、 匿名用户权限分配首先进入你的仓库目录下面的[../conf]文件夹下面,你会看到如图所示三个文件,其中的[svnserve.conf]存储普通的配置信息,[passwd]存储所有的授权用户的用户名和密码信息,[author]存储用户权限信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.2.4 管理用户帐号 在服务器端,新建 arm\ conf\ passwd.conf 文件,如下:
[users] morson = ShowMeTheMoney michael = mysecretpassword scofield = hellolittilekiller lincon = asyouknows111 rory = 8809117 linda = IlikeWorldCup2006
3.2.6 导入代码 在客户机 F:\ temp 目录下,建立好前述“背景假设”一节中描述的目录结构,然后用命令 F:\ temp>svn import arm svn://192.168.0.1/arm --username michael --password mysecretpassword 导入整个目录结构。
感谢 提供的 Subversion 空间,让更多的人可以通过 svn 获得本文件。
感谢 google 公司提供的免费主页空间,让我可以放置完全定制的 HTML 文件。
3 实战本章先直接给出需求及其最终的结果,如果你觉得对配置有什么疑问,或者看不懂,请不要着 急,我会在后面的章节详细描述的。
在实际的工作当中,我们有时候会遇见需要控制项目目录的访问权限的情况,比如说对项目的一些关键 模块进行限制,仅允许少数授权人士才可以修改等。由 于项目的目录本身就是作为版本库的一个部分 被 Subversion 所收管,所以我们无法利用操作系统的帐户权限体系,来实现授权控制。因此,这个 问题就只有让 svn 自己来解决了。
本文是利用 reST 格式来编写的,如果你对它感兴趣,请访问 /rst.html 。如果想要看到更好的 html 格式,你可以通篇复制本文到 一个文本文件里,然后利用 docutils 的 rst2html.py 脚本编译它,当然,首先你必须安装 python。
1.2 其他信息本文面向那些 Subversion 的管理员,或者任何对 Subversoin 有兴趣的人们。本文假 定读者对 Subversion 有一定的了解,因此不打算对所有涉及到的安装、使用,做一个细节性的描述。 若对于文章中描述的其他细节 方面有所疑问,请访问“参考文献”一节里面的参考资料。如果你对本 文任何地方有什么意见,或者发现本文有着大大小小的错误,请联系 zhengxinxing <AT> gmail <DOT> com 。
1 前言 1.1 Subversion 权限简介在 Subversion 的使用当中,存在“认证”、“授权”两个概念。认证, 即 authentication,是指用户名与密码的认证。授权,即 authorization ,是指某用户对某个目录是 否具备读、写权限的一种审核。这两者配合作用,就组成了 Subversion 的整个帐户管理体系。
3.1 背景假设厦门央瞬公司是一家电子元器件设备供应商,其中有个 ARM 部门,专门负责 ARM 芯 片的方案设计、销售,并在北京、上海各设立了一个办事处。对于工 作日志,原先采用邮件方式发给 经理,但是这种方式有个缺点,那就是不具备连续性,要看以前的日志必须一封一封邮件去查看,很麻 烦。于是就想到利用 Subversion, 让员工在自己电脑上编辑日志,然后利用 svn 传送回来,既方便 员工自己编写日志,又方便对日志的归档处理,而且提交日志的时候只需要执行一下 svn commit 即 可,比发送邮件还要简单的多。
本文是基于 Subversion 1.3.2、MS Windows 2003 Server Edition 平台来编写的,且 Subversion 服务器是利用 svnserve.exe 来架设的。不过,本文讲述到的绝大多数内容,都是不仅与操作系统平台 无关,而且与是采用 svnserve(.exe) 还是使用 Apache 来作为 Subversion 服务器也基本无关。因 此为免罗嗦,本文就以 svnserve(.exe) 为例进行描述,而略过 Apache 服务器相关的内容,有兴趣 的读者可以参考其他文章来在 Apache 服务器下实现类似的功能。
│ ├─beijing
北京办日志目录
│ └─shanghai
上海办日志目录
├─ref
公司公共文件参考目录
└─temp
临时文件目录
人员情况
morson,公司总经理,不习惯使用电脑,更喜欢传统的纸与笔,以及面对面的交流 michael,arm 事业部的部门经理,没事的时候喜欢弄点儿新技术,用 svn 来管理日志,就是他想出来 的主意 scofield,北京办人员,老员工,为人油滑难管 lincon,上海办人员,老员工,大老实人一个 linda,总部协调员、秘书,文笔不错,长得也不错 rory,单片机技术员,技术支持 访问权限需求分析
用上述命令行方式启动的 svn 服务有个小缺点,就是在本试验过程中,服务器端必须要一直开着那个 运行了上述命令的 DOS 窗口,不能关闭它。如果不想看到这个窗口,可以将 svnserve 安装成 windows 的一个 services,安装方式请参考其他文章。
3.2.2 建立代码库 在服务器端的 D:\svn 目录下,建立一个名为 arm 的代码库,命令如下:
3.2.3 编辑代码库基础配置文件 在服务器端,编辑代码库的 arm\ conf\ svnserve.conf 文件,如下:
[general] password-db = passwd.conf anon-access = none auth-access = write authz-db = authz.conf
3.2.1 启动 Subversion 服务 在服务器端,打开一个命令行窗口,用 CD 命令进入 Subversion 安装目录下的 bin 目录,运行如下 指令:
svnserve -d -r d:\ svn
其中的 -d 参数表示 svnserve.exe 将会作为一个服务程序运行在后台,而 -r 参数表示将 D:\svn 目 录指定为代码库的根目录。这样,当客户端使用类似 svn://192.168.0.1/foo 这样内容的 URL 来访问 服务器时候,其所访问到的真实代码库,其实就是 D:\svn\foo
其实进入 arm\conf 目录你就会发现,它下面已经存在三个写了一些帮助信息和示例的配置文件,以 帮助用户尽早掌握其配置方法。这三个默认的配置文件分别是 svnserve.conf、passwd、authz 。其 中后两者没有后缀,对于 windows 系统的用户来说,看起来总是有些怪异,所以在接下来的章节里 面,我将它们两个都给添加了个 conf 后缀,以便管理。
D:\ svn>svnadmin create arm
使用上述命令之后,如果不出问题的话,在 D:\ svn 目录下就会多出一个叫做 arm 的目录,其下具备 conf、dav、hooks、locks、db 等子目录或文件,此即 一个名为 arm 的代码库 。从此,通过 svn://192.168.0.1/arm 这样的 URL,我们就可以对这个代码库进行访问了。接下来就要进入本文的 正题了,也就是权限配置部分了。
本文的获得方式:
原始发布点: /bbs/thread-6-1-1.html 完整源文件,请利用 svn 命令来获取,命令为 svn co svn:///woodpecker/zqlib/tangle/michael.zheng/road2svn HTML 版式文件,请访问 /The.Road.to.Subversion_authz.html (推荐)或 /archives/2006/TheRoadToSubversion1authz.shtml 。 2 致谢非常感谢 站的站长 PCplayer ,他在本文编写过程中,给我提出了很多宝贵的 意见与建议。
svn 服务器相关信息
服务器地址: 192.168.0.1 服务器 OS: MS Windows 2000 Server Edition 中文版 用于存放日志的代码库本地目录: D:\ svn\ arm arm 部门文档的目录结构如下:
arm
部门名称
├─diary
工作日目录
│ ├─headquarters 总部工作日志目录
Subversion 提供了面向目录的帐户权限管理功能,通过它,我们就可以很精确地实现项目目录的访问 控制。不过在 1.2 及其以前的版本,我们只能利用 mod_authz_svn.so 模块,结合 Apache 服务器
来实现目录访问控制,这对于对 Apache 的配置与使用不是很熟悉的人来说,就不是很方便了。而 Subversion 终于在 1.3 版本上,在 svnserve.exe 服务器里面添加了这一功能,方便了很多人。
SVN 实现精细的目录访问权限控制
目录
1 前言 1.1 Subversion 权限简介 1.2 其他信息 2 致谢 3 实战 3.1 背景假设 3.2 使用 svnserve.exe 作为 Subversion 服务器 3.2.1 启动 Subversion 服务 3.2.2 建立代码库 3.2.3 编辑代码库基础配置文件 3.2.4 管理用户帐号 3.2.5 建立目录访问权限控制文件 3.2.6 导入代码 3.2.7 测试 4 深入 4.1 svnserve.conf 4.2 authz.conf 之用户分组 4.3 authz.conf 之项目根目录 4.4 authz.conf 之项目子目录 4.5 authz.conf 之目录表示法 4.6 authz.conf 的其他注意点 5 改进 5.1 对中文目录的支持 6 参考文献 7 历史轨迹
3.2.5 建立目录访问权限控制文件 在服务器端,新建 arm\ conf\ authz.conf 文件,内容如下:
[groups] g_vip = morson g_manager = michael g_beijing = scofield g_shanghai = lincon g_headquarters = rory, linda g_docs = linda [arm:/] @g_manager = rw *=r [arm:/diary/headquarters] @g_manager = rw @g_headquarters = rw @g_vip = r *= [arm:/diary/beijing] @g_manager = rw @g_beijing = rw @g_vip = r *= [arm:/diary/shanghai] @g_manager = rw @g_shanghai = rw @g_vip = r *= [arm:/ref] @g_manager = rw @g_docs = rw *=r [arm:/temp] * = rw
相关文档
最新文档