??xml version="1.0" encoding="utf-8" standalone="yes"?>黄色电影免费在线看,色爱区成人综合网,亚洲一区亚洲二区 http://www.aygfsteel.com/ywjcy/category/28103.htmlzh-cn Fri, 14 Dec 2007 15:32:14 GMT Fri, 14 Dec 2007 15:32:14 GMT 60 subversion和apache,apr,apr-util的关p?/title> http://www.aygfsteel.com/ywjcy/archive/2007/12/14/167746.html雨夜清枫 雨夜清枫 Fri, 14 Dec 2007 05:12:00 GMT http://www.aygfsteel.com/ywjcy/archive/2007/12/14/167746.html http://www.aygfsteel.com/ywjcy/comments/167746.html http://www.aygfsteel.com/ywjcy/archive/2007/12/14/167746.html#Feedback 0 http://www.aygfsteel.com/ywjcy/comments/commentRss/167746.html http://www.aygfsteel.com/ywjcy/services/trackbacks/167746.html 作者:PCplayer
来自Q我用Subversion - http://www.iUseSVN.com
旉Q?007.3.8
修改旉Q?007.10.26
很多朋友初次接触Subversion时不是很理解subversion和apache的关pR?/p>
我在q里单说明一下svn服务器和客户端的安装说明?/p>
服务?/strong>
subversion服务器是不需要apache的,但是可以使用apacheQ视具体情况来选择?/p>
1、如果只要通过file://或svn://来访问,则不需要apacheQ只安装svn卛_Q用svnserve来作为服务?/p>
2、如果你要徏立一个可以通过http://或https://来访问的版本库服务器Q则你需要用apache?/p>
Zapache配置Q请?a >http://bbs.iusesvn.com/thread-158-1-1.html ?/p>
客户?/strong>
在windows下,不管你要讉K的是什么类型的服务器,只要安装一个TortoiseSVN可以了Q开发者已l帮你搞定一切?/p>
在类Linuxpȝ下,如果你通过file://或svn://来访问,则只要编译安装svn可以,
如果通过http://讉KQ则要同neon~译Q?/p>
如果通过https://讉KQ则要同带ssl支持的neon~译Q?/p>
不论怎样Q都要同apr和apr-util~译?/p>
neon、apr、apr-util也很Ҏ获得Q目前发布的subversion代码都会有一个叫做subversion-deps-xxx的文Ӟ比如1.4.3的就是subversion-deps-1.4.3.tar.bz2
对于讉K国外|站比较慢的朋友Q下载Subversion和客LQ可以到 http://www.iUseSVN.com Q因带宽和流量有限,|站只对注册用户开放下载,q点有点ȝQ但是很值得Q一是下载速度的确相当快,二是里面有很多热于与大家交流的Subversion爱好者?/p>
]]>实现_的目录访问权限控Ӟv1.0 更新?006.12.05Q?/title> http://www.aygfsteel.com/ywjcy/archive/2007/12/14/167745.html雨夜清枫 雨夜清枫 Fri, 14 Dec 2007 05:10:00 GMT http://www.aygfsteel.com/ywjcy/archive/2007/12/14/167745.html http://www.aygfsteel.com/ywjcy/comments/167745.html http://www.aygfsteel.com/ywjcy/archive/2007/12/14/167745.html#Feedback 0 http://www.aygfsteel.com/ywjcy/comments/commentRss/167745.html http://www.aygfsteel.com/ywjcy/services/trackbacks/167745.html
Subversion之\
================
----------------------------
实现_的目录访问权限控?br />
----------------------------
:作? 郑新?br />
:联系: zhengxinxing <AT> gmail <DOT> com
:状? 正稿
:版本: 1.0
:修订: $Id: The.Road.to.Subversion_authz.rst 1749 2006-12-05 08:05:59Z zhengxinxing $
:版权: 作者保留对本文的一切修攏V发布等权力。Q何h惌转蝲本文部分或全部内ҎQ必M留包括作者、联pR状态、版本、修订、版权,共六信息,q给出出处。对本文的参考引用,则不受限制?br />
:关键? Subversion 目录讉K 权限
:献辞:
仅以本文Q献l中国广大的自由软g爱好者们
:摘要:
本文从一个实际的例子入手Q介l了如何利用 Subversion 自带的目录管理功能,来实现对目目录的精l访问权限的控制。同时描qC在配|的q程中,需要注意的一些地方,如对中文的处理等?br />
.. section-numbering::
.. contents:: ??br />
:backlinks: top
前言
====
Subversion 权限?br />
-------------------
?Subversion 的用当中,存在“认证”?#8220;授权”两个概念。认证,?authenticationQ是指用户名与密码的认证。授权,?authorization Q是指某用户Ҏ个目录是否具备读、写权限的一U审核。这两者配合作用,q成了 Subversion 的整个帐L理体pR?br />
在实际的工作当中Q我们有时候会遇见需要控刉目目录的讉K权限的情况,比如说对目的一些关键模块进行限Ӟ仅允许少数授权h士才可以修改{。由于项目的目录本n是作ؓ版本库的一个部分被 Subversion 所收管Q所以我们无法利用操作系l的帐户权限体系Q来实现授权控制。因此,q个问题只有让svn自己来解决了?br />
Subversion 提供了面向目录的帐户权限理功能Q通过它,我们可以很_地实现项目目录的讉K控制。不q在 1.2 及其以前的版本,我们只能利用 mod_authz_svn.so 模块Q结?Apache 服务器来实现目录讉K控制Q这对于?Apache 的配|与使用不是很熟悉的人来_׃是很方便了。而Subversionl于?1.3 版本上,?svnserve.exe 服务器里面添加了q一功能Q方便了很多人?br />
其他信息
--------
本文面向那些 Subversion 的管理员Q或者Q何对 Subversoin 有兴的Z。本文假定读者对Subversion有一定的了解Q因此不打算Ҏ有涉及到的安装、用,做一个细节性的描述。若对于文章中描q的其他l节斚w有所疑问Q请讉K“参考文?#8221;一节里面的参考资料。如果你Ҏ文Q何地Ҏ什么意见,或者发现本文有着大大小的错误,误p?zhengxinxing <AT> gmail <DOT> com ?br />
本文是基?Subversion 1.3.2、MS Windows 2003 Server Edition q_来编写的Q且 Subversion 服务器是利用 svnserve.exe 来架讄。不q,本文讲述到的l大多数内容Q都是不仅与操作pȝq_无关Q而且与是采用 svnserve(.exe) q是使用 Apache 来作?Subversion 服务器也基本无关。因此ؓ免罗嗦,本文׃ svnserve(.exe) Zq行描述Q而略q?Apache 服务器相关的内容Q有兴趣的读者可以参考其他文章来?Apache 服务器下实现cM的功能?br />
本文是利?reST 格式来编写的Q如果你对它感兴,误?http://docutils.sourceforge.net/rst.html 。如果想要看到更好的html格式Q你可以通篇复制本文C个文本文仉Q然后利?docutils ?rst2html.py 脚本~译它,当然Q首先你必须安装 python?br />
本文的获得方式:
- 原始发布点: http://iusesvn.com/bbs/thread-6-1-1.html
- 完整源文Ӟ请利?svn 命o来获取,命o?nbsp; ``svn co svn://cvs.woodpecker.org.cn/woodpecker/zqlib/tangle/michael.zheng/road2svn``
- HTML版式文gQ请讉K http://zhengxinxing.googlepages. ... bversion_authz.html Q推荐) ?http://swjr.blog.com.cn/archives ... version1authz.shtml
致谢
====
非常感谢 iusesvn.com 站的站长 PCplayer Q他在本文编写过E中Q给我提Z很多宝贵的意见与?br />
感谢 woodpecker.org.cn 提供?Subversion I间Q让更多的h可以通过 svn 获得本文件?br />
感谢 google 公司提供的免费主늩_让我可以攄完全定制?HTML 文g?br />
实战
====
本章先直接给出需求及其最l的l果Q如果你觉得寚w|有什么疑问,或者看不懂Q请不要着急,我会在后面的章节详细描述的?br />
背景假设
--------
厦门央瞬公司是一家电子元器g讑֤供应商,其中有个ARM部门Q专门负责ARM芯片的方案设计、销售,q在北京、上各讄了一个办事处。对于工作日志,原先采用邮g方式发给l理Q但是这U方式有个缺点,那就是不具备q箋性,要看以前的日志必M一邮件去查看Q很ȝ。于是就惛_利用 SubversionQ让员工在自q脑上~辑日志Q然后利用svn传送回来,既方便员工自q写日志,又方便对日志的归档处理,而且提交日志的时候只需要执行一?svn commit 卛_Q比发送邮件还要简单的多?br />
- svn服务器相关信?br />
- 服务器地址Q?192.168.0.1
- 服务器OSQ?MS Windows 2000 Server Edition 中文?br />
- 用于存放日志的代码库本地目录Q?``D:\svn\arm``
- arm部门文档的目录结构如?:
arm 部门名称
├─diary 工作日志目录
?nbsp; ├─headquarters 总部工作日志目录
?nbsp; ├─beijing 北京办日志目?br />
?nbsp; └─shanghai 上v办日志目?br />
├─ref 公司公共文g参考目?br />
└─temp 临时文g目录
- 人员情况
- morsonQ公司ȝ理,不习惯用电脑,更喜Ƣ传l的U怸W,以及面对面的交流
- michaelQarm事业部的部门l理Q没事的时候喜Ƣ弄点儿新技术,用svn来管理日志,是他想出来的主?br />
- scofieldQ北京办人员Q老员工,ZhҎ隄
- linconQ上办人员Q老员工,大老实Z?br />
- lindaQ总部协调员、秘书,文笔不错Q长得也不错
- roryQ单片机技术员Q技术支?br />
- 讉K权限需求分?br />
- 允许ȝ理、部门经理读取所有文件。顺便给他们开攑ֆ权限Q以便体现对他们职位的尊重,虽然对于某些文g来说Q他们若拥有“?#8221;权限其实也没什么用?br />
- 除部门经理外Q所有其他h员,均只能看到本办事处h员工作日?br />
- 不允许匿名访?br />
- ref目录只允许经理和U书dQ对其他人只?br />
- temp目录Zh都可以随意读?br />
使用 svnserve.exe 作ؓ Subversion 服务?br />
----------------------------------------
本节描述如何利用 svnserve.exe 来作Z码库服务器端Q实Cq功能。至于另外一U代码库服务器端Q即利用 Apache l合 mod_dav_svn.so 来实现的代码库服务器端,׃其对于本文叙q的内容“实现_的目录访问权限控?#8221;而言Q与前者没有太大的区别Q故而略q不提。它们二者只是在初次安装、配|方面存在一些不同,有兴的读者,可以参考其他文档,重新实验下述步骤?br />
启动 Subversion 服务
````````````````````
在服务器端,打开一个命令行H口Q用CD命oq入 Subversion 安装目录下的 bin 目录Q运行如下指?:
svnserve -d -r d:\svn
其中?-d 参数表示 svnserve.exe 会作ؓ一个服务程序运行在后台Q?-r 参数表示?``D:\svn`` 目录指定Z码库的根目录。这P当客L使用cM svn://192.168.0.1/foo q样内容?URL 来访问服务器时候,其所讉K到的真实代码库,其实是 ``D:\svn\foo``
用上q命令行方式启动?svn 服务有个缺点,是在本试验q程中,服务器端必须要一直开着那个q行了上q命令的DOSH口Q不能关闭它。如果不想看到这个窗口,可以?svnserve 安装?windows 的一?servicesQ安装方式请参考其他文章?br />
建立代码?br />
``````````
在服务器端的 ``D:\svn`` 目录下,建立一个名?arm 的代码库Q命令如?:
D:\svn>svnadmin create arm
使用上述命o之后Q如果不出问题的话,?``D:\svn`` 目录下就会多Z个叫?``arm`` 的目录,其下具备 conf、dav、hooks、locks、db {子目录或文Ӟ此即 **一个名为arm的代码库** 。从此,通过 ``svn://192.168.0.1/arm`` q样?URLQ我们就可以对这个代码库q行讉K了。接下来pq入本文的正题了Q也是权限配置部分了?br />
其实q入 ``arm\conf`` 目录你就会发玎ͼ它下面已l存在三个写了一些帮助信息和CZ的配|文Ӟ以帮助用户尽早掌握其配置Ҏ。这三个默认的配|文件分别是 svnserve.conf、passwd、authz 。其中后两者没有后~Q对?windows pȝ的用h_看v来L有些怪异Q所以在接下来的章节里面Q我它们两个都l添加了?conf 后缀Q以便管理?br />
~辑代码库基配置文g
``````````````````````
在服务器端,~辑代码库的 ``arm\conf\svnserve.conf`` 文gQ如?:
[general]
password-db = passwd.conf
anon-access = none
auth-access = write
authz-db = authz.conf
理用户帐号
````````````
在服务器端,新徏 ``arm\conf\passwd.conf`` 文gQ如?:
[users]
morson = ShowMeTheMoney
michael = mysecretpassword
scofield = hellolittilekiller
lincon = asyouknows111
rory = 8809117
linda = IlikeWorldCup2006
建立目录讉K权限控制文g
````````````````````````
在服务器端,新徏 ``arm\conf\authz.conf`` 文gQ内容如?:
[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
导入代码
````````
在客h ``F:\temp`` 目录下,建立好前q?#8220;背景假设”一节中描述的目录结构,然后用命?``F:\temp>svn import arm svn://192.168.0.1/arm --username michael --password mysecretpassword`` 导入整个目录l构?br />
q条指o的精意思是Q将 arm 目录下面的所有东西,导入到那个名?arm 的代码库中去。如果你不指定源目录Q则 svn 会默认将当前目录作ؓ源目录。比如说Q你处于 ``F:\temp`` 目录下的时候,直接执行 ``svn import svn://192.168.0.1/arm`` Q那么当你取Z的代码的时候,你会发现Q居然多了一层名?arm 的目录。结果,你就必须使用cM ``svn://192.168.0.1/arm/arm`` q样怪异的URLQ才能够正确讉KC的代码们?br />
q一点粗看好像不是特别重要,不过联想到前q的目录授权规则Q可都是按照标准的项目目录结构来设计的。突然之_你项目的根目录之上,多出了一个名?arm 的目录,那么我们的所有目录授权规则,基本上都要全部改q了Q否则除了根目录Q你永远会得C个莫名其妙的“access denied”。由?Subversion 在这一步骤上的界面不够人性化Q因此这是初学者很Ҏ弄的地方之一?br />
试
````
在服务器上,打开一?DOS Prompt H口Q输入如下指?:
svn co svn://127.0.0.1/arm --no-auth-cache --username rory --password 8809117
我们应该得到如下目录l构::
arm
├─diary
?nbsp; └─headquarters
├─ref
└─temp
然后修改ref目录下Q意文件ƈ提交Q服务器会报错“Access denied”QBingo!
深入
====
本章详l介l前一章所涉及的两个配|文Ӟ svnserve.conf ?authz.confQ通过寚w|逐行的描qͼ来阐明其中的一些细节含义。除此之外的其他配置、安装等内容Q不是本文重点,读者若有什么疑问,请参考后?#8220;参考文?#8221;中列出的一些文档?br />
q里首先要注意一点,M配置文g的有效配|行Q都 **不允许存在前|空?* Q否则程序可能会出错Q给你一?``Option expected`` 的提C。也是_如果你直接从本文的纯文本格式中拷贝了相关的配|行q去Q需要手动将前置?个空格全部删除。当然了Q如果你觉得一下子要删除好多行的同h目的前置I格是一件苦差Q那么也?UltraEdit ?#8220;Column Mode”~辑模式Q可以给你很大帮助?br />
svnserve.conf
-------------
``arm\conf\svnserve.conf`` 文gQ是 svnserve.exe q个服务器进E的配置文gQ我们逐行解释如下?br />
首先Q我们告?svnserve.exeQ用户名与密码放?passwd.conf 文g下。当Ӟ你可以改成Q意的有效文g名,比如默认的就?passwd::
password-db = passwd.conf
接下来这两行的意思,是说只允许经q验证的用户Q方可访问代码库?那么哪些?#8220;l过验证?#8221;用户呢?噢,当然Q就是前面说那些?passwd.conf 文g里面持有用户名密码的家伙。这两行的等号后面,目前只允?read write none 三种|你如果想实现一些特D的|比如?#8220;read-once”之类的,你自己动手改源代码,反正它也是自pY?:
anon-access = none
auth-access = write
接下来就是最关键的一句呢Q它告诉 svnserve.exeQ项目目录访问权限的相关配置是放?authz.conf 文g?:
authz-db = authz.conf
当然Qsvn 1.3.2 引入本功能的时候,pȝ默认使用 authz 而不?authz.conf 作ؓ配置文g。不q可能由于鄙人是处女座的Q据说有着强烈的完主义情l,看着 svnserve.conf 有后~?passwd ?authz 没有是不爽Q硬是要改了?br />
上述?passwd.conf ?authz.conf 两个文g也可以作为多个代码库׃n使用Q我们只要将它们攑֜公共目录下,比如说放?``D:\svn`` 目录下,然后在每个代码库?svnserve.conf 文g中,使用如下语句::
password-db = ..\..\passwd.conf
authz-db = ..\..\authz.conf
或?:
password-db = ../../passwd.conf
authz-db = ../../authz.conf
q样可以让多个代码库共享同一个用户密码、目录控刉|文Ӟq在有些情况下是非常方便的?br />
authz.conf 之用户分l?br />
---------------------
``arm\conf\authz.conf`` 文g的配|段Q可以分Zc, ``[group]`` 是一c,里面攄着所有用户分l信息。其余以 ``[arm:/]`` 开头的是另外一c,每一D就是对应着目的一个目录,其目录相x限,在此段内设|?br />
首先Q我们将人员分组理Q以便以后由于h员变动而需要重新设|权限时候,量改动东ѝ我们一p|了5个用户分l,分组名称l一采用 ``g_`` 前缀Q以方便识别。当然了Q分l成员之间采用逗号隔开::
[groups]
# M惌查看所有文档的非本部门人士
g_vip = morson
# l理
g_manager = michael
# 北京办h?br />
g_beijing = scofield
# 上v办h?br />
g_shanghai = lincon
# 总部一般员?br />
g_headquarters = rory, linda
# 秘Q撰写文?br />
g_docs = linda
注意到没有, linda q个帐号同时存在“总部”?#8220;文档?#8221;两个分组里面Q这可不是我老眼昏花写错了,是因?Subversion 允许我这栯|。它意味着Q这个家伙所拥有的权限,会比他的同?rory 要多一些,q样的确很方ѝ具体多了哪些呢Q请往下看Q?br />
authz.conf 之项目根目录
-----------------------
接着Q我们对目根目录做了限Ӟ该目录只允许arm事业部的l理才能修改Q其他h都只能眼巴巴的看着::
[arm:/]
@g_manager = rw
* = r
- ``[arm:/]`` 表示q个目录l构的相Ҏ节点Q或者说?arm 目的根目录。其中的 arm 字样Q其实就是代码库的名Uͼ卛_面用 svnadmin create 命o创徏出来的那?arm?br />
- q里?``@`` 表示接下来的是一个组名,不是用户名。因为目?g_manager l里面只有一?michaelQ你当然也可以将 ``@g_manager = rw`` q一行替换成 ``michael = rw`` Q而表辄意义完全一栗?br />
- ``*`` 表示“除了上面提到的那些h之外的其余所有h”Q也是“除了部门l理外的其他所有h”Q当然也包括ȝ理那个怪老头
- ``* = r`` 则表C?#8220;那些人只能读Q不能写”
authz.conf 之项目子目录
-----------------------
然后Q我们要l总部人员开放日志目录的d权限::
[arm:/diary/headquarters]
@g_manager = rw
@g_headquarters = rw
@g_vip = r
* =
q个子目录的讄有些特色Q因Z需求分析中我们知道Q这个子目录的权限范围要比其父目录小Q它不允讔R指定了的之外其他M问。在q段讄中,我们需要注意以下几点:
- 我敢打赌Q设计svn的家伙们Q大部分都是在类 unix q_下工作,所以他们dƢ?``/`` 来标识子目录Q而完全忽视在 MS Windows 下是?``\`` 来做同样的事情。所以这儿,Z表示 ``diary\headquarters`` q个目录Q我们必M?``[arm:/diary/headquarters]`` q样的格式。当然如果你一定要?``\`` Q那么唯一的结果就是,Subversion 会将你的q部分设|置之不理,全当没看到?br />
- q里最后一行的 ``* =`` 表示Q除了经理、总部人员、特别h士之外,M人都被禁止访问本目录。这一行是否可以省略呢Q不行,因ؓ **权限具备l承?* Q子目录会自动拥有父目录的权限。若没有q一行,则所有帐号都可以d ``/diary/headquarters`` 目录下的文g。因然我们ƈ没有讄q个目录的父目录权限Q可是默认的规则使得 ``/diary`` 目录的权限与根目录完全一P从而让其余帐号获得?``/diary/headquarters`` 目录?r 权限。所以简单来_ ``* =`` q一句的目的Q就是割断权限承性,使得理员可以定制某个目录及其子目录的权限,从而完全避开其父目录权限讄的媄响?br />
- 之所以这儉K要将 ``@g_vip = r`` 一句加上,是因ؓ存在上述q个解释。如果说你没有明地lȝ理授予读的权力,则他会和其他ZP?``* =`` l排除在外?br />
- 如果众位看官中间Q有谁玩q防火墙配置的话Q可能会感觉上述的配|很熟悉。不q这里有一点与防火墙配|不一P那就是各个配|行之间Q没?**先后序** 一说。也是_如果我将本段配置?``* =`` q一行挪到最前面Q完全不影响整个配置的最l效果?br />
接下来我们看看这一D?:
[arm:/ref]
@g_manager = rw
@g_docs = rw
* = r
q里的主要看点,是 g_docs l里面包含了一?linda 帐号Q她也同时在 g_headquarters l里面出玎ͼq就意味着Q?linda 具备对 ``/ref`` ?``diary\headquarters`` 两个目录的读写权限?br />
authz.conf 之目录表C法
-----------------------
在前面的描述中,我们都采?``[repos:/some/dir]`` q样的格式来表示目的某个目录,比如上一节中的 ``[arm:/diary/headquarters]`` 。而实际上QSubversion 允许你采?```[/some/dir]`` q样的格式,即不指定代码库的方式来表C目录,此时的目录就匚w所有项目?br />
对于使用 svnserve 的用h_只有?svnserve q行的时候用了 ``-r`` 参数Qƈ且让多个代码库共享同一个目录权限文Ӟ?authz.conf ?authzQ时Q不指明代码库名U才有可能惹ȝ。一般情况下Q我们对每个代码库都会独立用配|文Ӟ毕竟每个目的目录结构,都有很大不同Q在一h义不大。因此一般来_为简zv见,都可以不指明代码库名U。本文全都指明了代码库名Uͼ主要是ؓ了将来扩展成同一个配|文Ӟ以方侉K?Apache 服务器?br />
对于使用 Apache 的用h_它们二者可有着很大的不同,因ؓ此时往往习惯于用一个公q目录权限配置文g。如果你使用?SVNParentPath 指oQ则指定版本库的名字是很重要的,因ؓ假若你用后者,那么 ``[/some/dir]`` 部分׃与所有代码库目?``[/some/dir]`` 目录匚w。如果你使用 SVNPath 指oQ则q两U表C方式就没有什么区别了Q毕竟只有一个版本库?br />
authz.conf 的其他注意点
-----------------------
1. 父目录的 ``r`` 权限Q对子目?``w`` 权限的媄?br />
把这个问题专门提出来Q是因ؓ?.3.1及其以前的版本里面,有个bugQ即某个帐号ZҎ个子目录具备写权限,则必d其父目录具备L限。因此现在用了1.3.2及其更高的版本,方便了那些惛_一个代码库存放多个怺独立的项目的理员,来分配权限了。比如说央舜公司建立一个大的代码库用于存放所有员工日志,叫做 diaryQ而arm事业部只是其中一个部门,则可以这样做::
[diary:/]
@g_chief_manager = rw
[diary:/arm]
@g_arm_manager = rw
@g_arm = r
q样Q对于所有arm事业部的人员来说Q就可以?svn://192.168.0.1/diary/arm q个URL当作根目录来q行日常操作Q而完全不它其实只是一个子目录Qƈ且当有少数好奇心比较强的人想试着 checkout 一?svn://192.168.0.1/diary 的时候,马上׃得到一个警?#8220;Access denied”Q哇Q太酷了?br />
2. 默认权限
如果说我Ҏ个目录不讄M权限Q会怎样Q马上动手做个试验,?:
[diary:/]
@g_chief_manager = rw
Ҏ::
[diary:/]
# @g_chief_manager = rw
q样q当于什么都没有讄。在我的 svn 1.3.2 版本上,此时是禁止Q何访问。也是_如果你想要让某h讉K某目录,你一定要昑ּ指明q一炏V这个策略,看v来与防火墙的{略是一致的?br />
3. 只读权限带来的一个小副作?br />
若设|了::
[arm:/diary]
* = r
?Subversion 会认为,M人都不允许改?diary 目录Q包括删除?**改名** Q和 **新增** ?br />
也就是说Q如果你在项目初期创建目录时候,一不小心写错目录名Uͼ比如因拼写错误写?dairyQ以后除非你改动 authz.conf 里面的这行设|,否则无法利用 svn mv 命o错误的目录更正?br />
4. anon-access 属性对目录权限的媄?br />
你想你的代码库开攄所有h讉KQ于是你开放了匿名讉K权限Q在 svnserve.conf 文g中添加一行: ``anon-access=read`` 。可是对于部分目录,你又不希望别人看刎ͼ于是针对那些特别目录Q你?authz.conf 里面q行配置Q添加了授权讉K的hQƈd?``* =`` 标记。你认ؓ一切OK了,可是你缺发现Q那个特别目录却无法讉K了,L提示 ``Not authorized to open root of edit operation`` 或?``未授权打开根进行编辑操作`` 。你再三查你配置的用户名与密码,认一切正,q是无法解决问题?br />
原来QSubversion 有个?bug Q当 ``anon-access=read`` q且某个目录有被讄?``* =`` 标记Q则会出Cq问题。这?bug 在当前最新版本上Qv1.4Q还存在Q也许在下一版本内可以被Ҏ吧?br />
解决的办法是Q在 svnserve.conf 中,?anon-access 讄?none ?br />
改进
====
对中文目录的支持
----------------
上午上班的时候,Morson 来到 Michael 的桌子前面,说道Q?#8220;你是否可以将我们的北京办、上办目录Q改成用中文的,看着那些拼音我觉得很隑֏Q?#8221; Michael 心想Q还好这两天刚了解了一些与 unicode ~码相关的知识,于是微笑地回{:“当然可以Q你明天下午可以看C文目录名UC?#8221;
1. 使用 svn mv 指oQ将原来的一些目录改名ƈ commit 入代码库Q改名后的目录结构如?:
arm
├─工作日志
?nbsp; ├─总部人员
?nbsp; ├─北京?br />
?nbsp; └─上v?br />
├─公司公共文g参考目?br />
└─临时文g存放?br />
2. 修改代码库的 authz.conf 文gQ将相应目录逐一改名
3. UTF-8 格式?authz.conf 文gQ以?BOM
配|文件{换成 UTF-8 格式之后QSubversion p够正识别中文字W了。但是这里需要注意一点,卛_M?UTF-8 文g不包?BOM 。BOM ?Byte Order Mark 的羃写,?UNICODE 文g头部用于指明高低字节排列序的几个字W,通常?``FF FE`` Q而将之用 UTF-8 ~码之后Q就?``EF BB BF`` 。由?UTF-8 文g本n不存在字节序问题Q所以对 UTF-16 {编码方式有重大意义?BOMQ对?UTF-8 来说Q只有一个作用——表明这个文件是 UTF-8 格式。由?BOM 会给文本处理带来很多NQ所以现在很多Y仉要求使用不带 BOM ?UTF-8 文gQ特别是一些处理文本的软gQ如 PHP?UNIX 脚本文g{,svn 也是如此?br />
目前常用的一些文本编辑工具中QMS Windows 自带?#8220;C?#8221;里面Q?#8220;另存?#8221;菜单保存出来?UTF-8 格式文gQ会自动带上 BOM 。新版本 UltraEdit 提供了选项Q允许用户选择是否需?BOMQ而老版本的不会d BOM。请各位查看一下自己常用的~辑器的说明文gQ看看它是否支持q个功能?br />
对于已经存在 BOM ?UTF-8 文gQ比如说是微Y“C?#8221;弄出来的Q我们可以利?UltraEdit 来将 BOM L。方法是Q首先利?#8220;UTF-8 TO ASCII”菜单文件{换成本地~码Q通常是GB2312码,然后再?#8220;ASCII TO UTF-8(UNICODE Editing)”来{换到 UTF-8 卛_。当Ӟq么操作之前Q你肯定得先保证Q你?UltraEdit 保存出来?UTF-8 文g的确是不?BOM 的?br />
Subversion Z么讨?BOM 呢?我不知道Q毕竟我也只是一个普通用P不是开发h员。如果你感兴,q且英文够好的话Q不妨参考一下这个讨论: http://subversion.tigris.org/ser ... ers&msgNo=51334
参考文?br />
========
- Subversion官方文档Q?http://svnbook.red-bean.com
- Subversion 1.3变更记录Q?http://subversion.tigris.org/svn_1.3_releasenotes.html
- Subversion FAQQ?http://subversion.tigris.org/faq.html
- UTF-8 常见问题Q?http://unicode.org/faq/utf_bom.html
历史轨迹
========
- 2006.06.04Q?v0.1
* ?http://www.iusesvn.com/bbs 首次发布
- 2006.07.07Q?v0.4
* 加入 www.woodpecker.org.cn ?OBP 目
- 2006.10.11Q?v0.5
* 修正部分错误Q调整部分章节顺?br />
- 2006.12.05Q?v1.0
* d“权限?#8221;一?br />
* 调整“实战”章的章节序Q添加一些说明,使之更具可读?br />
* 删除一些与 apache 服务器相关的说明
* d“目录表示?#8221;一节
* 重写?#8220;authz.conf 之项目子目录”一节
]]>
վ֩ģ壺
ƽԶ |
ʲ |
Դ |
Ϫ |
ɽ |
Դ |
ָ |
Ȫ |
Ƥ |
̫ |
齭 |
|
|
ҳ |
ʯ |
|
ɽ |
ͨ |
ղ |
«Ϫ |
|
żҿ |
|
|
|
ƽ |
˫ |
|
Ͳ |
Ϫ |
˾ |
|
|
|
Ӧ |
ո |
|
|
ɽʡ |
캵 |
|