svn用户权限管理
svn用户权限管理

SVN用户权限管理讲解/***********************************************************///SVNSubversion 用户权限管理//资料来源:网络、总结//2010年7月20日/***********************************************************/ 基本的操作:以我创建的Svn工程为例子来讲解SVN权/***********************************************************/ //SVNSubversion 用户权限管理//资料来源:网络、总结//2010年7月20日/***********************************************************/基本的操作:以我创建的Svn工程为例子来讲解SVN权限管理的配置仓库创建路径:D:\SVNLibrary>>>取消匿名登陆:打开文件D:\SVNLibrary\conf\svnserve.conf找到:###anon-access = read将前面的注释去掉,并将read 改为:none即使:anoe-access=none 表示匿名登陆下的用户权限为空。
即:系统不支持匿名登陆说明:auth-access = write #通过验证的用户可以读和写auno-access = read #匿名登陆下可以只读文件,即:文件修改后无法提交到服务器password-db =password #用户保存文件的名称authz-db =authz #权限管理文件这个是非常重要的,如果我们要对整个工程的文件进行权限分配的时候,就必须将这个行文件前面注释掉,否咋即使我们在权限配置文件里面进行再多的配置都是无效的。
这点我已经犯错了。
然后我们在authz 文件下面进行权限的分配在权限分配的时候要注意的问题:>>>权限分配时,应遵守从根目录到子目录、从设置最广泛权限到最精细权限、从只读权限到读写权限设置原则,即从根目录开始设置最广泛的访问权限,然后逐步设置下属子目录的访问权限。
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(Subversion)是一个开源的版本控制系统,被广泛用于代码管理和协作开发。
在软件开发过程中,SVN经常被用来管理代码的版本,协调多人同时开发,以及追踪代码的变更历史。
然而,由于开发过程中存在着各种复杂的情况和问题,有时候SVN的使用也会遇到一些常见的问题。
本文将从实际开发的角度出发,总结了SVN开发过程中常见的问题,并提出了一些解决方法供大家参考。
一、代码冲突在团队协作开发中,可能会出现多个开发者同时修改同一个文件的情况,导致代码冲突。
这时SVN会提示出现冲突,需要手动解决。
常见的解决方法有:1. 及时更新代码:在提交代码之前,先从SVN服务器更新最新的代码到本地,避免出现代码冲突。
2. 手动解决冲突:在出现冲突的文件中手动编辑代码,将冲突的部分修复后再重新提交。
二、意外删除文件有时候在清理代码的过程中,开发者不小心删除了某个重要的文件或目录,而没有在SVN上记录下来。
这时可以通过以下方法进行修复:1. 使用SVN恢复命令:可以使用命令行或者SVN客户端工具执行svn revert命令,将被意外删除的文件或目录还原为最新版本。
2. 查看SVN历史记录:可以通过SVN客户端工具或者命令行查看SVN服务器上对应文件的历史记录,并找回被删除的文件。
三、服务器连接问题在使用SVN时,有时会遇到无法连接服务器的问题,导致无法提交或更新代码。
这种情况下可以尝试以下解决方法:1. 检查网络连接:首先查看本地网络连接是否正常,对SVN服务器进行ping测试,确保网络连接畅通。
2. 检查SVN服务器配置:确认SVN服务器位置区域和端口是否正确,以及用户名和密码是否正确。
3. 联系系统管理员:如果以上方法无法解决问题,可以联系SVN服务器的系统管理员进行进一步排查和修复。
四、SVN性能问题随着代码量的增加和团队规模的扩大,SVN服务器可能会出现性能下降的情况。
为了提高SVN的性能,可以尝试以下方法:1. 定期清理历史记录:定期清理SVN服务器上过多的历史记录和无用的文件,可以通过SVN命令行工具执行svnadmin命令进行清理。
Linux下SVN部署安全及权限配置_实现web同步更新

Linux下SVN部署/安全及权限配置,实现web同步更新本文包含以下内容:SVN服务器安装SVN权限管理SVN使用SASL加密SVN上传时同步其它目录需求在WEB线上版本管理的基础上,能够在代码上传之后,立刻通过WEB访问,查看修改效果;同时,保证数据的安全性;SVN安装SVN服务器有2种运行方式:独立服务器和借助apache运行。
svnserve和apache相比是轻量级的,也比较简单,svnserve包含在subversion里面,所以只要安装了subversion就相当于安装了一个小型的svn服务器。
它使用自己的一套协议通信。
例如访问apache时使用http:// 前缀,而svnserve使用svn:// 前缀.这里介绍的是通过独立服务器方式运行,优点是简单小巧。
如果是支持较大规模的开发,还是推荐使用apache服务器方式;这里使用svnserver安装;1.首先为SVN单独创建一个用户,这样可以使用操作系统的安全特性;2.将svnadmin这个用户加入到sudu组;3.安装:sudo apt-get install subversion4.创建测试目录:mkdir /home/svnadmin/test5.创建版本库:svnadmin create /home/svnadmin/test4. 导入项目例如现在有个工程,名称为examPro,位置/alidata/www/examPro , 将这个工程导入到本地仓库中。
svn import /alidata/www/examPro file:///home/svnadmin/examPro -m "import examPro"在上一个例子里,将会拷贝目录examPro到版本库中;这样这个工程就在纳入服务器的本地仓库管理。
为了使用SVN的同步更新机制,我们需要在svn服务器环境上签出一份最新工程拷贝(为表述方便,这里称为A目录)。
配置管理-SVN权限详解

配置管理-SVN权限详解
转载⾃:
VisualSvn的权限类型分为4种:
1. Inherit from parent(Read/Write):权限和⽗节点的权限相同,左右的⼦节点默认权限;
2. No Access:没有任何权限,⽤户⽆法将⽂件下载到本地;
3. Read Only:只读,⽤户只能从服务器将⽂件下载到本地,⽆法将修改提交到服务器;
4. Read / Write:读写,⽤户可以从本地将修改提交到服务器。
权限设置问题说明:
l⽤户U在组G1和组G2中都有设置,同时对于同⼀个项⽬,G1和G2被安排的权限是不同的,此时⽤户U的权限是取2组中权限的较⼤值。
权限⼤⼩如下: Read / Write > Write Only > Read Only > No Access
⽤户U在组G1和组G2中都有设置,同时G1对⽗节点有权限设置,G2对⼦节点也有权限设置,但是设置的不同,这时U对⼦节点的操作的权限是根据G2的设置,⽽不管权限值的⼤⼩。
⽤户U在组G1和组G2中都有设置,G1和G2对⽗节点的权限设置是Ga和Gb,Ga>Gb那么U对⽗节点的操作权限是Ga,⽽如果G2⼜对⽗节点下的⼀个⼦节点⼜设置了权限Gb(看似多余的操作)此时U对⼦节点的操作权限即是Gb(如果不设置则仍是Ga)。
SVN管理规范

SVN管理规范一、引言版本控制是软件开辟过程中非常重要的一环,它可以匡助团队有效地协作、追踪代码变更、恢复历史版本等。
SVN(Subversion)是一款流行的开源版本控制系统,被广泛用于软件开辟项目中。
本文旨在制定一套SVN管理规范,以确保团队成员能够高效、规范地使用SVN进行版本控制。
二、SVN仓库结构1. 仓库的组织结构应根据项目的特点进行设计,普通情况下可按照模块、子项目或者功能进行划分。
2. 每一个项目应在仓库中创建一个独立的目录,并按照项目名称进行命名。
3. 在项目目录下,可以根据需要创建子目录,如分支(branches)、标签(tags)和主干(trunk)。
- 分支目录用于保存项目的不同分支,如功能开辟分支、修复分支等。
- 标签目录用于保存项目的发布版本,每一个标签应包含一个稳定的、可发布的版本。
- 主干目录用于保存项目的主要开辟代码,所有的开辟工作应在主干上进行。
三、SVN操作规范1. 提交待码- 在提交待码前,应先更新本地工作副本,确保与仓库中的最新版本保持一致。
- 每次提交应只包含一个逻辑上的更改,确保提交的代码具有单一性。
- 提交时,应提供故意义的提交消息,描述本次提交的目的和内容。
- 避免提交不必要的文件,如编译生成的文件、暂时文件等。
2. 分支管理- 在需要进行功能开辟或者修复时,应创建相应的分支,避免直接在主干上进行修改。
- 分支的命名应具有描述性,能够清晰表达分支的用途和目的。
- 分支的合并应在完成相应的开辟或者修复后及早进行,以减少冲突的可能性。
3. 标签管理- 在发布稳定版本时,应创建相应的标签,以便于后续的版本追踪和回溯。
- 标签的命名应遵循一定的规则,如使用版本号或者日期进行命名。
- 标签创建后,应禁止对其进行修改,以确保标签的稳定性。
4. 冲突解决- 在更新本地工作副本或者合并分支时,可能会发生代码冲突。
冲突解决应及时进行,避免影响其他团队成员。
- 冲突解决时,应子细检查冲突的原因,并根据实际情况进行相应的修改和调整。
SVN权限设置用户分组

数据仓库下的配置文件:=============================================================== ======svn serve.conf访问权限、权限配置文件设置authz用户组、用户、访问权限设置pass wd 用户、密码设置=============================================================== ======S VN 用户名密码的保存位置<BR><BR>C:\Do cumen ts an d Set tings\Admi nistr ator\Appli catio n Dat a\Sub versi on\au th<br>C:\DO CUME~1\ADM INI~1\Appl ic~1\Subve rsion\auth=============================================================== ======【参数设置】创建数据仓库:D:\s vn_re posit ory---------ser ver上的数据仓库(1) 选择D:\s vn_re posit ory(2) 右键,To...SVN\ cre ate r eposi toryhere\...FS FS(3) 修改配置:D:\svn home\conf\svnse rve.c onfanon-acces s = r eadauth-acces s = w ritepass word-db =passw d注释去掉p asswd文件中加用户配置好后重启,再chec kout试试! 详见:配置文件:s vnser ve.co nf----------------------------------------------------------### This file cont rolsthe c onfig urati on of thesvnse rve d aemon, ifyou### us e itto al low a ccess to t his r eposi tory. (If youonlyallow###acces s thr oughhttp: and/or fi le: U RLs,thenthisfileis### irr eleva nt.)###Visit http://su bvers ion.t igri/ formoreinfor matio n.[gener al]### Th ese o ption s con trolacces s tothe r eposi toryfor u nauth entic ated### a nd au thent icate d use rs. Valid valu es ar e "wr ite", "rea d",### an d "no ne". Thesampl e set tings belo w are thedefau lts.anon-acces s = n onea uth-a ccess = wr ite### Th e pas sword-db o ption cont rolsthe l ocati on of thepassw ord### da tabas e fil e. U nless youspeci fy apathstart ing w ith a /,### th e fil e's l ocati on is rela tiveto th e con f dir ector y.### Unc ommen t the line belo w touse t he de fault pass wordfile.pass word-db =passw d### Theauthz-db o ption cont rolsthe l ocati on of theautho rizat ion### ru les f or pa th-ba sed a ccess cont rol. Unle ss yo u spe cifya pat h### star tingwitha /,the f ile's loca tionis re lativ e tothe c onf### di recto ry. If yo u don't sp ecify an a uthz-db, n o pat h-bas ed ac cess### c ontro l isdone.###Uncom mentthe l ine b elowto us e the defa ult a uthor izati on fi le.#auth z-db= aut hz### Thi s opt ion s pecif ies t he au thent icati on re alm o f the repo sitor y.### Iftwo r eposi torie s hav e the same auth entic ation real m, th ey sh ould### h ave t he sa me pa sswor d dat abase, and vice vers a. T he de fault real m### is r eposi tory's uui d.#realm = My Firs t Rep osito ryauth z----------------------------------------------------------###Thisfileis an exam ple a uthor izati on fi le fo r svn serve.### Itsforma t isident icalto th at of mod_authz_svnautho rizat ion### fi les.### A s sho wn be low e ach s ectio n def inesautho rizat ionsfor t he pa th an d### (opt ional) rep osito ry sp ecifi ed by thesecti on na me.### Th e aut horiz ation s fol low.An au thori zatio n lin e can refe r toa### sing le us er, t o a g roupof us ers d efine d ina spe cial[grou ps]### se ction, orto an yoneusing the'*' w ildca rd. Eachdefin ition can### g rantread('r') acce ss, r ead-w rite('rw') acc ess,or no acce ss ('').#=======================分组配置开始=======================[grou ps]# harr y_and_sall y = h arry,sallyciqc id=lz a,lxqciqc id_ci qcidP latfo rm=lz a,lxq,lml,dw,fx m,sq,xwwc iqcid_sysP latfo rm=lz a,lxq,lml,dw,fx m,sq,xwwc iqcid_en=w fciq cid_d esign=cyc iqcid_img=lq#设置对根(即SVN)目录下,所有版本库的访问权限#* =表示其他的没有任何权限[/]@ci qcid= rw#lza= rw* = [/c iqcid Platf orm]@ciq cid_c iqcid Platf orm = rw* =[/sy sPlat form]#未授权用户没有任何权限@ci qcid_sysPl atfor m = r w* =[/sysP latfo rm/We bRoot/WEB-INF/p ub] #@ciq cid_c iqcid Platf orm = rw#lza = rw#* = [/c iqcid.en]#未授权用户没有任何权限@ciq cid_e n = r w@ci qcid= rw* =#=======================分组配置结束======================= pas swd----------------------------------------------------------### Thi s fil e isan ex ample pass wordfilefor s vnser ve.### It s for mat i s sim ilarto th at of svns erve.conf. As s hownin th e### exam ple b elowit co ntain s one sect ion l abell ed [u sers].### Thenameand p asswo rd fo r eac h use r fol low,one a ccoun t per line. [u sers]# ha rry = harr yssec ret# sall y = s allys secre tlza=lzasq=sqtdw=tdwl ml=lm l0000=0000lzy=lzywd=wdtlw=tlwl jf=lj fflx=flxzjy=z jyjh=jhs j=sjwqc=w qclt=lth jd=hj dpln=plnzhl=z hlzt=ztl l=lldl=dljnz=jnzz dd=zd dhx=hxwy=wyx ww=xw wfxm=fxmzgh=z ghsk=skl cl=lc lyl=ylsh ejun=sheju nlxy=lxydw=dwlml=lmlz zd=zz dfhj=fhjxf=xfzy=z ylq=lqym y=ymy zzd=zzd h ch=hc h njf=njfjlz=j lzcy=cy#shejilq=l qwj=wj。
SVN管理规范

SVN管理规范一、引言SVN(Subversion)是一种版本控制系统,它能够追踪和管理文件和目录的变化,为团队协作开辟提供了便利。
为了确保SVN的有效使用和管理,制定一套SVN管理规范对于项目的顺利进行至关重要。
二、SVN仓库管理1. 仓库命名规范- 仓库名称应简明扼要,能够清晰表达其所属项目或者部门。
- 仓库名称应使用全小写字母,可以使用连字符或者下划线进行单词分隔。
- 避免使用过于复杂或者含有特殊字符的仓库名称。
2. 仓库权限管理- 仓库管理员应根据项目或者部门的需求,合理分配用户权限。
- 严格控制对仓库的读写权限,仅授权给相关人员。
- 定期审查和更新仓库权限,确保权限的合理性和安全性。
3. 仓库备份- 定期对仓库进行备份,确保数据的安全性和完整性。
- 备份数据应存储在可靠的设备或者服务器上,远离潜在的风险和灾害。
三、SVN代码管理1. 项目结构规范- 项目应按照一定的层次结构进行组织,便于管理和维护。
- 项目根目录下应包含trunk、branches和tags三个子目录。
- trunk目录用于存放主要的开辟代码,branches目录用于存放分支代码,tags 目录用于存放发布版本的代码。
2. 分支管理- 分支应根据项目需要进行创建,每一个分支应有明确的目的和命名规范。
- 分支的创建、合并和删除应经过相应的讨论和审批。
- 定期进行分支合并,确保主干代码的稳定性和一致性。
3. 提交规范- 提交时应提供清晰的提交信息,说明本次提交的目的和内容。
- 提交信息应简明扼要,避免使用含糊不清或者无意义的描述。
- 提交前应确保代码的完整性和可编译性,避免提交存在错误或者冲突的代码。
4. 版本管理- 标记重要的版本里程碑,使用tags目录进行存档和管理。
- 每一个版本的标记应包含版本号、发布日期和简要说明。
- 版本标记应遵循一定的命名规范,便于快速定位和识别。
四、SVN日志管理1. 日志书写规范- 每次提交待码时,应书写详细的日志记录,包括修改的文件、修改的内容和原因等。
svn的权限管理与设置

Win7 系统搭建SVN 服务端和客户端图文使用方法1、安装好VisualSV N Server后,运行VisualSVN Server Manger,打开服务器的Visual SVN 界面:2、创建仓库(reposi tory)第一种方式:按照上图,创建新的代码库,在下图所示的文本框中输入代码名称:上图中选择“e mptyrepost ory”,则在代码库只创建空的代码库Sta rtKit,选下面的“singl e-projec t”则在代码库S t artK it下面会创建tru nk、branch es、tags三个子目录;3种仓库默认推荐权限设置(Nobody…不允许任何人访问All Subver sionusers…所有svn用户都可以Custom ize permis sions自定义权限允许,这里下面有个按钮,我们可以过会继续设置,当然你也可以在这里设置,然后点cre ate创建)这里有个Re posit ory URL这个地址就是客户端获取服务器代码的地址,你可以先记下来,也可以通过右击仓库名可以获得。
前面的WIN-TV..什么的是你计算机的名字,客户端都是服务器的ip地址就行了这就是标准的b ranc hes,tags,trunk服务器版本我们现在右击整个仓库,就是MyBl og项目,我们现在来创建一个ad min管理员,用户名adm in,密码admi n,你可以在Us ers查找到他,可直接修改密码点击“OK”创建完代码库后,没有任何内容在里面。
我会在这个教程的第二部分说明如何迁入源代码。
下面,我们开始安全性设置,在左侧的Us ers上点击右键:输入上面的信息,点击OK,我们就创建一个用户了。
svn:权限设置(创建用户和用户组、权限设置)

修改后相应的组或用户,就获得了对仓库的相应的权限 3、权限设置(项目) (1)鼠标右键查看项目的权限:
默认是跟仓库的权限保持一致的。 (2)修改项目的权限: 测试组只拥有read权限,开发组具有read和write权限,既可以查看又可以修改代码,保证了开发的安全有序。
请求出错错误代码400请尝试刷新页面重试
1、创建用户和组 (1)创建用户
svn: 权 限 设 置 ( 创 建 用 户 和 用 户 组 、 权 限 设 置 )
(2)创建组(输入组名称并添加用户)、
组限(也可以是分支和主干):
(2)点击ADD: (3)选择用户或组:
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在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]存储用户权限信息。
SVN管理规范

SVN管理规范引言:版本控制是软件开辟过程中非常重要的一环,而SVN(Subversion)作为一款流行的版本控制系统,被广泛应用于软件开辟团队中。
为了确保项目的顺利进行和代码的可维护性,SVN管理规范是必不可少的。
本文将详细介绍SVN管理规范的内容。
一、版本库的组织1.1 项目结构- 版本库应按照项目进行组织,每一个项目对应一个独立的版本库。
- 在版本库中,可以根据项目的不同模块或者功能划分不同的目录。
1.2 分支与标签- 分支用于并行开辟不同版本的代码,应在需要并行开辟的版本上创建分支。
- 标签用于标记重要的版本,例如发布版本或者里程碑版本。
1.3 目录结构- 版本库中的目录结构应清晰明了,便于开辟人员快速定位所需文件。
- 避免在版本库中创建过多的目录层级,以免造成混乱和不必要的复杂性。
二、代码提交与更新2.1 提交前的准备工作- 在提交待码之前,应先执行更新操作,确保本地代码与版本库中的代码保持一致。
- 检查代码是否符合编码规范,确保代码质量。
2.2 提交信息的规范- 提交信息应简明扼要地描述本次提交的内容。
- 提交信息应包括相关的任务或者缺陷编号,便于追踪和溯源。
2.3 避免提交不必要的文件- 避免将编译生成的文件、暂时文件或者IDE相关文件提交到版本库中。
- 忽稍不必要的文件或者目录,以减小版本库的体积。
三、分支与合并3.1 分支的创建与合并- 在需要并行开辟的版本上创建分支,确保不同版本的代码相互独立。
- 分支合并前应先进行测试,确保合并的代码不会引入新的问题。
3.2 处理冲突- 在合并分支时,可能会浮现代码冲突的情况。
解决冲突时,应与相关人员进行沟通,确保解决方案的一致性。
- 解决冲突后,应进行全面的测试,确保合并后的代码没有引入新的问题。
3.3 定期合并主干代码- 定期将分支中的代码合并到主干,确保分支代码与主干代码的同步性。
- 合并前应先进行测试,确保合并的代码不会影响主干代码的稳定性。
svn安装及权限配置

svn安装及权限配置SVN安装及权限配置安装(svn://…访问方式的安装部署)1.安装svn-1.4.5-setup.exe2.将SVNService.exe拷贝到\Subversion\bin下,双击安装。
启动服务。
部署1.创建SVN仓库现在svn的目的位置上,创建相应文件夹,例如:E:/svnroot,然后开始→运行→cmd→输入命令:svnservice -install -d -r E:/svnroot2.启动svnservice服务3.创建项目仓库在svn仓库下创建项目的相应文件夹,例如:E:/svnroot/project1,然后开始→运行→cmd→输入命令:svnadmin create E:/svnroot/project1。
这时,在E:/svnroot/project1会出现conf、dav 等文件夹和文件。
4.有多个项目时,重复步骤3。
权限配置1.修改每个项目中的conf文件夹下的svnserve.conf文件:anon-access = noneauth-access = writepassword-db = ../../passwdauthz-db = ../../authz添加以上项目。
其中,../../passwd表示,向上两级文件夹下的passwd文件。
这样做的目的是,将所有项目的权限放在一个文件中控制。
2.设置加密和权限文件位置将其中一个文件夹下的passwd文件和authz文件拷贝到svnroot下,与每个项目的文件夹平行。
3.设置svn密码,修改passwd文件在【users】下添加用户名及密码,格式如下:用户名= 密码,例如:harry = harrysecret每个用户单独占一行,密码后不用添加任何分隔符号。
4.设置svn权限,修改authz文件:设置【groups】:按照一种规则,将所有人员分组,例如可以按照对每个项目、每个项目的不同权限进行分组,人员之间用逗号分隔,每个组单独占一行,结尾不需要任何分隔符号。
svn权限设置总结

因为刚来一个新公司,公司里面svn用的不熟练,对权限这块管理的不是很严密,现在又要做配置库迁移,所以就做个权限测试总结,之前在网上看到很多重复的svn权限配置的文章,都感觉千篇一律,刚开始接触svn的人看着还有点绕,其实自己懂了svn权限的关键点,然后逐步尝试,这样的话效果会更好,下面就是我的实际操作,分享给大家,也给自己做个总结。
备注:本次测试的服务器是用的CollabNet Subversion Edge,客户端用的TortoiseSVN;测试过程分析:一.测试单独用户权限,不存在组的信息:测试一:svn_auth_file--用户文件配置内容:admin:$apr1$ExUVYcIZ$6HFRPa9ZFwrmj5krzW.ip0zhangshan:$apr1$N1nt8KdS$HAm0io/5OTIHKxI.D47NP1zhaoliu: zhaoliu说明:admin是登录http://192.168.0.240:3343/csvn/,系统自动生成的默认用户;zhangshan是在界面“用户--用户列表”中创建的;zhaoliu是在服务器端直接编辑svn_auth_file文件添加的;svn_access_file--权限文件配置内容:[/]* =admin = rw[LTest:/]zhaoliu = rw权限文件解析:[/]代表对所有仓库的权限也是根目录的意思;*= 代表所有人无任何权利,等后面再一步一步对人逐个设置权限;admin=rw 表示admin用户具备根目录下的读写权限;[LTest:/]表示仓库"LTest" 的访问权限;zhaoliu = rw 表示zhaoliu这个用户对LTest库下所有的内容有读写权限;测试结果:用admin和zhaoliu的账号可以检出LTest库,zhangshan不可以;用admin和zhaoliu的账号可以只检出LTest/document目录,zhangshan不可以;测试二:svn_auth_file--用户文件不变svn_access_file--权限文件修改为配置内容:[/]* =admin = rw[LTest:/]zhaoliu = rw[LTest:/document]zhaoliu = rzhangshan = rw测试结果:前一次的结果admin和zhaoliu的账号权限仍然有效;用zhangshan的账号不能检出LTest库,可以直接检出LTest/document目录,且可以对文件进行读写操作;测试三:svn_auth_file--用户文件不变svn_access_file--权限文件修改为配置内容:[/]* =admin = rw[LTest:/]liting = rw[LTest:/document]liting = rzhangshan = rw[LTest:/old]zhangshan = rw* =测试结果:1)前一次的结果admin和zhaoliu,zhangshan的账号权限仍然有效;2)用zhangshan的账号不能检出LTest库,可以直接检出LTest/old目录,且可以对文件进行读写操作;3)用zhaoliu的账号不能直接检出LTest/old目录,但是由于在[LTest:/]下zhaoliu是有读写权限的,所以在直接检出LTest时,只能检出document,在此继承[LTest:/document]的权限只能读不能修改文件;二.测试用户组权限:测试一:svn_auth_file--用户文件配置内容:admin:$apr1$ExUVYcIZ$6HFRPa9ZFwrmj5krzW.ip0zhangshan:$apr1$N1nt8KdS$HAm0io/5OTIHKxI.D47NP1zhaoliu: zhaoliuwangwu:wangwulishi:lishi说明:admin是登录http://localhost:3343/csvn/,系统自动生成的默认用户;zhangshan是在界面“用户--用户列表”中创建的;zhaoliu,wangwu,lishi是在服务器端直接编辑svn_auth_file 文件添加的;svn_access_file--权限文件配置内容:[groups]admin = admin, zhaoliudevelopers = zhangshan,wangwumanager = lishi[/]* =@admin = rw[LTest:/]@developers = r@manager = rw测试结果:用户组@admin,@manager可以检出LTest库且可以修改文件,@develop只能检出文件浏览,不能进行操作;测试二:增加内容:[LTest:/document]@developers = rwzhaoliu = r* =测试结果:1)用户组@developers可以检出整个LTest库,对document目录可读写,对old目录只读;2)用户zhaoliu,首先继承@admin用户组对根目录[/]下所有配置库的读写权限,其次遵守对LTest/document目录的只读权限,所以最后是可以检出整个LTest库,对document目录可读,对old 目录可读写;三.测试含有中文的文件夹权限设置svn_access_file--权限文件新增[TestChinaNameFolder:/]@manager = r@developers = r[TestChinaNameFolder:/00项目管理]@manager = rw* =[TestChinaNameFolder:/01用户需求]@developers = rw* =测试结果:1)用户组@admin继承根目录的读写权限,且TestChinaNameFolder库下的00和01两个子目录都设置了除某固定组外其他无法访问,@admin最终只能看到或checkout出除00和01以外的目录;2)用户组@manager继承[TestChinaNameFolder:/]库的只读权限,且在子目录00下拥有读写权限,且01设置固定组外其他无法访问,@manager最终对TestChinaNameFolder库下00子目录有读权限,无法看到01子目录;3)用户组@developers继承[TestChinaNameFolder:/]库的只读权限,且在子目录01下拥有读写权限,且00设置固定组外其他无法访问,@developers最终对TestChinaNameFolder库下01子目录有读权限,无法看到00子目录;svn权限设置总结:总的规则:svn权限是以文件夹作为区分的,svn权限有继承性,但是只以当前位置的权限为使用权限(可以在测试中看出);详细分析:1)[/]配置库根目录允许只有管理员有读写权限;2)[Repository:/]配置库目录的权限会影响用户对此配置库下所有子文件夹的权限;但是某个子文件夹的权限,只对具体设置的某个组或用户有效,若有* = ,则其他用户无法看到此文件夹,若无* = ,则其他用户的权限会继承上层权限,若上层权限没有则此处也没有;比如:在“单个用户权限测试”测试三中,用户liting对LTest整个库有读写权限,但是对库下面的doucument 文件夹只有只读权限,那就只能浏览文件,不能对文件进行修改删除;她对库下面的old文件夹没有权限,在执行检出命令时,也就不会检出old文件夹;3)* = 在子文件夹中谨慎使用,如果在子文件夹中设置了此权限,就表示设置权限的这个目录除了已有用户对此有对应权限外,其他用户是看不到此目录的,像隐藏起来了;比如:在“用户组权限测试”测试二中,用户组@manager和@admin继承测试一中的群组权限,对LTest 配置库有读写权限,但是对于在测试二中的设置,除了用户组@developer能直接检出document且可进行读写外,其他用户组,不能直接检出该目录,且在LTest根目录下检出的内容只有old目录,没有document;4)在设置权限时候,一般[/]根目录给svn管理员开放读写权限,其他设置无权限;对于具体的配置库,针对于相关的用户组设置读写,对于配置库的子目录不需要看到的用户组使用* = 控制;5)在具体配置库下面拥有只读或者读写权限的用户或组,若某子目录中设置* = 且未给此用户或组设置只读或读写权限,则在浏览或checkout配置库时该用户或组看不到此子目录;6)在配置svn权限的时候,需要考虑到子目录对上层目录权限的继承性,这样才能精确的配置好权限;7)如果svn配置库结构有涉及到中文的,必须把权限文件的字符编码转换成UTF-8,权限才会生效:具体方法:用UE打开权限文件,选择“文件--另存为--格式--UTF-8 无BOM”,就可以了;。
svn管理规范

svn管理规范SVN(Subversion)是一个开源的版本控制系统,它可以帮助团队协同开发项目并管理代码的历史更改记录。
为了确保版本控制的有效性和高效性,需要制定一些规范来管理SVN。
1. 代码库的组织结构:为了保持代码库的清晰和易于维护,需要规范组织代码库的结构。
一般可以按照项目或模块划分目录,确保每个目录下只包含相关文件。
2. 分支和标签的使用:分支和标签是SVN中强大的功能,可以用来实现并行开发和发布管理。
规范分支和标签的使用方法,例如规定在发布前需要创建一个标签,并在标签上打上版本号。
3. 提交频率和提交信息:为了方便团队协作和代码追踪,规范提交频率和提交信息的格式。
推荐频繁提交小的改动,每个提交都应该附带有明确的提交信息,描述该次更改的目的和内容。
4. 冲突解决和合并策略:在并行开发过程中,会遇到代码冲突的情况。
规范冲突解决和合并策略,例如使用合适的工具来解决冲突,并通过团队协作来解决合并问题。
5. 权限管理和用户角色:根据团队的实际情况,规范SVN的权限管理和用户角色划分。
只给予必要的权限,并定义不同用户角色的职责和权限范围。
6. 定期备份和恢复:为了防止数据丢失,需要定期备份SVN的数据,并规范备份和恢复的操作步骤。
备份数据应该存储在安全的地方,并能够实现快速恢复。
7. 定期清理和优化:随着项目的进行,SVN数据库中会积累越来越多的历史记录。
定期清理和优化数据库,删除无用的记录,可以提高SVN的性能和效率。
8. 文档和培训:SVN的管理规范需要文档化并定期进行培训。
提供SVN的使用手册和规范说明,帮助团队成员了解和遵守规范。
9. 审查和监控:定期进行SVN的审查和监控,检查是否有违规操作和异常情况。
通过审查和监控,可以及时发现问题并采取相应的措施。
10. 持续改进:SVN的管理规范需要进行持续改进,根据实际情况和团队需求来不断优化规范。
团队成员可以提出改进建议,并及时调整规范。
SVN管理规范

SVN管理规范一、引言版本控制是软件开辟过程中非常重要的一环,它能够匡助团队有效管理代码的变更,协作开辟,以及追踪和修复问题。
SVN(Subversion)是一种流行的版本控制系统,本文将介绍SVN管理规范,以确保团队在开辟过程中能够高效地使用SVN。
二、SVN仓库结构1. 仓库创建:在SVN服务器上创建一个新的仓库,命名规范为项目名称或者团队名称。
2. 仓库结构:SVN仓库应该按照项目的逻辑结构进行组织,普通可以分为三个主要目录:- trunk:主干目录,用于存放主要开辟代码,是最新的稳定版本。
- branches:分支目录,用于存放各个功能模块的开辟分支,每一个分支应该有一个明确的目的和名称。
- tags:标签目录,用于存放发布版本的快照,普通不允许修改。
三、提交规范1. 提交频率:开辟人员应该时常提交待码,以避免代码丢失或者冲突。
推荐每天至少提交一次。
2. 提交注释:每次提交都应该附带有明确的注释,描述本次提交的目的和变更内容。
注释应该简洁明了,不要包含无关信息。
3. 提交单元:每次提交应该只包含一个逻辑单元的修改,避免将多个功能或者问题的修改混合在一起。
四、分支管理1. 分支创建:当需要开辟新功能或者修复问题时,应该从主干目录创建一个新的分支。
分支的命名应该具有描述性,能够清晰表达其目的和内容。
2. 分支合并:当分支开辟完成或者修复完成后,应该将其合并回主干目录。
合并前应该进行必要的代码审查和测试,确保合并的代码是稳定和可靠的。
3. 分支删除:当分支的目的已经达到或者再也不需要时,应该及时删除分支,以避免仓库的混乱和不必要的复杂性。
五、冲突解决1. 更新代码:在开始工作之前,应该先更新本地代码,确保与仓库中的最新版本保持一致。
2. 冲突处理:当浮现代码冲突时,应该及时解决。
可以使用SVN提供的合并工具或者第三方工具来解决冲突,解决冲突后应该进行必要的测试,确保代码的正确性。
六、权限管理1. 用户权限:SVN仓库应该根据团队成员的角色和职责分配不同的权限。
SVN权限配置

之后配置 authz 和passwd 文件
1.在passwd里面添加一个wentao的用户
[root@wentao13 conf]# vim passwd
[users] # harry = harryssecret # sally = sallyssecret wentao = 123456
[:/] 的/表示根目录
然后权限就分配完了,
我们用客户端工具验证下(服务器防火墙记得关哦 systemctl stop fi密码登录 短信登录 忘记登录用户名 忘记密码 记住我 登录 第三方登录/注册 没有账户, 立即注册
SVN权 限 配 置
修改配置文件
[root@wentao13 conf]# pwd /root/svnRepo//conf [root@wentao13 conf]# ll total 12 -rw-r--r--. 1 root root 1080 Mar 29 08:59 authz -rw-r--r--. 1 root root 309 Mar 29 08:59 passwd -rw-r--r--. 1 root root 3110 Mar 29 09:27 svnserve.conf [root@wentao13 conf]# vim svnserve.conf
[groups] # harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,&joe
# [/foo/bar] # harry = rw # &joe = r #*=
# [repository:/baz/fuz] # @harry_and_sally = rw #*=r [:/] wentao = rw
SVN的权限配置

@g_docs = rw
* = r
[arm:/temp]
* = rw
测试
----
在服务器上,打开一个 DOS Prompt 窗口,输入如下指令::
svn co svn://127.0.0.1/arm --no-auth-cache --username rory --password 8809117
authz.conf 项目根目录
---------------------
接着,我们对项目根目录做了限制,该目录只允许arm事业部的经理才能修改,其他人都只能眼巴巴的看着::
[arm:/]
@g_manager = rw
* = r
- ``[arm:/]`` 表示这个目录结构的相对根节点,或者说是 arm 项目的根目录
:作者: 郑新星
:联系: zhengxinxing gmail com
:状态: 草稿,编写中
:版本: 0.3
:修订: $Id: The.Road.to.Subversion_authz.txt 57 2006-06-14 13:19:23Z michael $
:版权: 作者保留对本文的一切修改、发布权力。任何人想要转载本文部分或全部内容时,必须保留包括作者、联系、状态、版本、修订、版权,共六项信息。对本文的参考引用,则不受限制。
[general]
password-db = passwd.conf
anon-access = none
auth-access = write
authz-db = authz.conf
管理用户帐号
------------
SVN超级管理员使用指南

SVN超级管理员使用指南目录1登陆SVN后台管理 (2)2首页菜单介绍 (2)3超级管理员主要管理功能 (3)4操作详细介绍 (3)4.1用户管理 (3)4.1.1邀请用户 (3)4.1.2手动添加用户 (4)4.1.3编辑用户 (5)4.1.4删除用户 (6)4.2用户组管理 (8)4.2.1创建用户组 (8)4.2.2删除用户组 (9)4.2.3编辑用户组 (10)4.3一级目录管理 (12)4.3.1创建一级目录 (12)4.3.2删除一级目录 (13)4.3.3编辑一级目录 (14)5场景示例1: (16)1登陆SVN后台管理1、输入:http://xy.svn/svnman/出现SVN后台管理登陆界面:2、选择login,并输入用户名和密码,点击login按钮3、登陆成功2首页菜单介绍左图为超级管理员登入时的菜单显示“User Admin”:用户管理;“Group Admin”:用户组管理;“Repository Admin”:一级目录管理;“Logout”:登出;3超级管理员主要管理功能➢用户管理:邀请、增加、编辑、删除用户账号➢用户组管理:新建、删除用户组、编辑用户组成员,用户组是为了权限设置方便,将多个具有相同或相似权限的用户设为一个用户组。
➢一级目录管理:建立一级目录,并设置该目录的管理员。
4操作详细介绍4.1用户管理点击首页菜单的“User Admin”进入用户管理界面,如下图4.1.1邀请用户建议使用邀请用户功能添加新用户,新用户可以通过邀请邮件中的链接地址进入系统自己注册帐号和密码。
节约管理时间并保证了帐号安全。
点击第一个“Invite”按钮进入邀请用户界面,如下图在第一个文本框如填写接受邀请用户的E-MAIL,然后点击“Confirm”按钮提交即可。
4.1.2手动添加用户点击用户管理界面中的”Add”按钮,进入添加用户界面如下图:增加用户时,首先在Name栏输入用户ID,然后设置初始密码,再重复输入一次,在Email栏输入用户邮箱地址,以后可能会用到,如果要设置此成员为超级管理员的话,勾选Admin项,一般不要随便赋予用户Admin权限,最后输入当前操作管理员自己的密码,点击“Confirm”即可。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SVN用户权限管理讲解/***********************************************************///SVNSubversion 用户权限管理//资料来源:网络、总结//2010年7月20日/***********************************************************/ 基本的操作:以我创建的Svn工程为例子来讲解SVN权/***********************************************************/ //SVNSubversion 用户权限管理//资料来源:网络、总结//2010年7月20日/***********************************************************/基本的操作:以我创建的Svn工程为例子来讲解SVN权限管理的配置仓库创建路径:D:\SVNLibrary>>>取消匿名登陆:打开文件D:\SVNLibrary\conf\svnserve.conf找到:###anon-access = read将前面的注释去掉,并将read 改为:none即使:anoe-access=none 表示匿名登陆下的用户权限为空。
即:系统不支持匿名登陆说明:auth-access = write #通过验证的用户可以读和写auno-access = read #匿名登陆下可以只读文件,即:文件修改后无法提交到服务器password-db =password #用户保存文件的名称authz-db =authz #权限管理文件这个是非常重要的,如果我们要对整个工程的文件进行权限分配的时候,就必须将这个行文件前面注释掉,否咋即使我们在权限配置文件里面进行再多的配置都是无效的。
这点我已经犯错了。
然后我们在authz 文件下面进行权限的分配在权限分配的时候要注意的问题:>>>权限分配时,应遵守从根目录到子目录、从设置最广泛权限到最精细权限、从只读权限到读写权限设置原则,即从根目录开始设置最广泛的访问权限,然后逐步设置下属子目录的访问权限。
提示:目录的访问权限既可以分配给组,也可以分配指定用户。
>>>对某个用户,如果只赋给他某个目录的权限,但对上级目录没有赋给,则他不能有上级目录的任何权限例如某个用户有:/repository/project1的r权,而没有/repository的r权>>>对于所有的目录,都优先处理设置在这个目录上的权限设置。
例如sai用户:[/repository]sai = rw对于repository目录,他有rw的权限。
[/repository/project1]sai = r对于repository下的project1目录,他只有r权限。
则,这个saiy用户只有project1的r权。
而repository下其他目录有rw权。
>>>权限分配,只可以分配到某个目录,而不能到某个文件>>>如果某个目录上没有对某个用户设置权限,则一直向上级目录查找,看是否有权限例如sai用户[/repository]sai=rw[/repository/project1]saiya=rw则sai用户一样拥有/repository/project1的读写权限>>>分配权限时,= 的左边为用户,不能想当然的以,号分开加入多个用户>>>如果想设置某用户都没有rw的权限,只要= 号的右边这空即可User1 =>>>如果某一个文件夹,对于人任何用户都没有权限* =其中*代表所有的人SVN深入的部分本章将详细介绍前一章所涉及的两个配置文件,svnserve.conf 和authz.conf,通过对配置逐行的描述,来阐明其中的一些细节含义。
这里首先要注意一点,任何配置文件的有效配置行,都不允许存在前置空格,否则程序会无法识别。
也就是说,如果你直接从本文的纯文本格式中拷贝了相关的配置行过去,需要手动将前置的4个空格全部删除。
当然了,如果你觉得一下子要删除好多行的同样数目的前置空格是一件苦差使,那么也许UltraEdit 的“Column Mode”编辑模式,可以给你很大帮助呢。
1 svnserve.confarm\conf\svnserve.conf 文件,是svnserve.exe 这个服务器进程的配置文件,我们逐行解释如下。
首先,我们告诉svnserve.exe,用户名与密码放在passwd.conf 文件下。
当然,你可以改成任意的有效文件名,比如默认的就是passwd:password-db = passwd.conf接下来这两行的意思,是说只允许经过验证的用户,方可访问代码库。
那么哪些是“经过验证的”用户呢?噢,当然,就是前面说那些在passwd.conf 文件里面持有用户名密码的家伙。
这两行的等号后面,目前只允许read write none 三种值,你如果想实现一些特殊的值,比如说“read-once”之类的,建议你自己动手改源代码,反正它也是自由软件:anon-access = noneauth-access = write接下来就是最关键的一句呢,它告诉svnserve.exe,项目目录访问权限的相关配置是放在authz.conf 文件里:authz-db = authz.conf当然,svn 1.3.2 引入本功能的时候,系统默认使用authz 而不是authz.conf 作为配置文件。
不过由于鄙人是处女座的,有着强烈的完美主义情结,看着svnserve.conf 有后缀而passwd 和authz 没有就是不爽,硬是要改了。
2 authz.conf 之用户分组arm\conf\authz.conf 文件的配置段,可以分为两类,``[group]`` 是一类,里面放置着所有用户分组信息。
其余以[arm:/] 开头的是另外一类,每一段就是对应着项目的一个目录,其目录相关权限,就在此段内设置。
首先,我们将人员分组管理,以便以后由于人员变动而需要重新设置权限时候,尽量少改动东西。
我们一共设置了5个用户分组,分组名称统一采用g_ 前缀,以方便识别。
当然了,分组成员之间采用逗号隔开:[groups]# 任何想要查看所有文档的非本部门人士g_vip = morson# 经理g_manager = michael# 北京办人员g_beijing = scofield# 上海办人员g_shanghai = lincon# 总部一般员工g_headquarters = rory, linda# 小秘,撰写文档g_docs = linda注意到没有,linda 这个帐号同时存在“总部”和“文档员”两个分组里面,这可不是我老眼昏花写错了,是因为svnserve.exe 允许我这样设置。
它意味着,这个家伙所拥有的权限,将会比他的同事rory 要多一些,这样的确很方便。
具体多了哪些呢?请往下看!3 authz.conf 之项目根目录接着,我们对项目根目录做了限制,该目录只允许arm事业部的经理才能修改,其他人都只能眼巴巴的看着:#设置对根(即SVNLibrary)目录下,所有版本库的访问权限[/]* = r #所有登录用户默认权限为只读[arm:/] #设置对arm版本库中,所有项目的访问权限@g_manager = rw* = r[arm:/] 表示这个目录结构的相对根节点,或者说是arm 项目的根目录这里的@ 表示接下来的是一个组名,不是用户名。
你当然也可以将@g_manager=rw 这一行替换成michael=rw ,而表达的意义完全一样。
* 表示“除了上面提到的那些人之外的其余所有人”,也就是“除了部门经理外的其他所有人”,当然也包括总经理那个怪老头* = r 则表示“那些人只能读,不能写”4 authz.conf 之项目子目录然后,我们要给总部人员开放日志目录的读写权限:[arm:/diary/headquarters]@g_manager = rw@g_headquarters = rw@g_vip = r* =我敢打赌,设计svn的家伙们,大部分都是在unix/linux 平台下工作,所以他们总喜欢使用/ 来标识子目录,而完全忽视在MS Windows 下是用\ 来做同样的事情。
所以这儿,为了表示arm\diary\headquarters 这个目录,我们必须使用[arm:/diary/headquarters] 这样的格式。
这里最后一行的*= 表示,除了经理、总部人员、特别人士之外,任何人都被禁止访问本目录。
这一行是否可以省略呢?之所以这儿需要将@g_vip=r 一句加上,就是因为存在上述这个解释。
如果说你没有明确地给总经理授予读的权力,则他会和其他人一样,被* 给排除在外。
如果众位看官中间,有谁玩过防火墙配置的话,可能会感觉上述的配置很熟悉。
不过这里有一点与防火墙配置不一样,那就是各个配置行之间,没有先后顺序一说。
也就是说,如果我将本段配置的*= 这一行挪到最前面,完全不影响整个配置的最终效果。
请注意这儿,我们并没有给arm\diary 目录设置权限,就直接跳到其子目录下进行设置了。
我当然是故意这样的,因为我想在这儿引入“继承”的概念。
权限具备继承性任何子目录,均可继承其父目录的所有权限,除非它自己被明确设置了其他的权限。
也就是说,在arm 目录设置权限后,arm\diary 目录没有进行设置,就意味着它的权限与arm 目录一样,都是只有经理才有权读写,其他人只能干瞪眼。
【* = 是否可以省略】【用例子引入覆盖】【单用户权限的继承问题】【父目录权限集成与全面覆盖问题】现在来看看好了,我们现在掌握了“继承”的威力,它让我们节省了不少敲键盘的时间。
可是现在又有一个问题了,属性具备覆盖性质子目录若设置了属性,则完全覆盖父目录。
5 authz.conf 的其他注意点父目录的r 权限,对子目录w 权限的影响把这个问题专门提出来,是因为在1.3.1及其以前的版本里面,有个bug,即为了子目录的写权限,项目首目录必须具备读权限。
因此现在使用了1.3.2版本,就方便了那些想在一个代码库存放多个相互独立的项目的管理员,来分配权限了。
比如说央舜公司建立一个大的代码库用于存放所有员工日志,叫做diary,而arm事业部只是其中一个部门,则可以这样做:[diary:/]@g_chief_manager = rw[diary:/arm]@g_arm_manager = rw@g_arm = r这样,对于所有arm事业部的人员来说,就可以将svn://192.168.0.1/diary/arm 这个URL当作根目录来进行日常操作,而完全不管它其实只是一个子目录,并且当有少数好奇心比较强的人想试着checkout 一下svn://192.168.0.1/diary 的时候,马上就会得到一个警告“Access deni”,哇,太酷了。