SVN服务器配置详细解说
SVN服务器配置说明

1、前言花了72小时,终于把 Subversion 初步掌握了。
从一个连“什么是版本控制”都不知道的门外汉,到配置出精确至每目录访问的入门者,中间还卡了一天时间。
其中费了许多气力,摸索实验了多次,还差点放弃了,但是收获是巨大的。
现把我的配置和学习过程写下来,供大家参考,也让初学者少走弯路。
以下仅以 Windows 平台为例讲解,Unix/Linux 平台请参考相关资料。
如其中有谬误的地方,包括错别字,请联系我修订。
技术在分享中进步!2、基本概念2.1、什么是版本控制简单点来说,版本控制就是数据仓库,它可以记录你对文件的每次更改。
这样,就算你在昏天黑地的改了几个月后老板说不要了,还是按照过去那样,你也不会抓狂,简单的恢复版本操作就搞定一切。
2.2、什么是 SubversionSubversion是一个自由/开源版本控制系统,它管理文件和目录可以超越时间。
一组文件存放在中心版本库,这个版本库很像一个普通的文件服务器,只是它可以记录每一次文件和目录的修改,这便使你可以取得数据以前的版本,从而可以检查所作的更改。
从这个方面看,许多人把版本控制系统当作一种“时间机器”。
Subversion可以通过网络访问它的版本库,从而使用户可以在不同的电脑上使用。
一定程度上可以说,允许用户在各自的地方修改同一份数据是促进协作。
进展可能非常的迅速,并没有一个所有的改变都会取得效果的通道,由于所有的工作都有历史版本,你不必担心由于失去某个通道而影响质量,如果存在不正确的改变,只要取消改变。
一些版本控制系统也是软件配置管理(SCM)系统,这种系统经过特定的精巧设计来管理源代码,有许多关于软件开发的特性—本身理解编程语言、或者提供构建程序的工具。
然而,Subversion不是这样一个系统,它是一个通用系统,可以管理任何类型的文件集,对你这可能是源代码,对别人,可能是一个货物报价单或者是书稿等。
2.3、版本库(repository)Subversion 的核心就是 repository ,中文翻译成“版本库”。
SVN使用指南-搭建、配置

SVN学习笔记1.SVN基础知识1.1 checkoutSVN checkout 是从服务器取出数据,并在数据上添加控制。
1.2 修改配置文件修改SVN的配置文件,如用户名,密码后不用重启服务器。
1.3 ExportExport仅仅是是导出数据,是平常的格式,没有控制。
1.4 权限配置SVN1.4权限配置:[/]根目录,[/HR]根目录下HR文件夹,SVN的权限是有了子目录的权限,却不一定有父目录的权限,这次的配置方法跟以前的版本可能不同1.5 import从本地往服务器import数据,如果是导入一个文件夹如A,且A文件夹下有数据,则会导入A文件夹下的数据,而不是导入A文件夹,所以如果要导入一个Jbuilder的项目文件,需要先用一个文件夹把项目多包含一层文件夹后再导入,才能导入项目文件。
1.6 如何删除SVN服务器上的文件:在电脑任意地方右键单击:如下图单击“Repo-Browser”,会出现下图,写出服务器的URL然后出现下图:通过右键菜单即可以做删除了1.7 如何向SVN服务器导入数据选中要导入的文件夹,点击“Import”或者单击下拉框:或者点击右侧的“…”小按钮:出现如下图在服务器URL后写一个要存放上传数据的文件夹(这个文件夹会自动创建),否则会直接在根目录下创建,然后点击OK,出现如下界面,少等一会添加完成2.Jbuilder2006中SVN应用2.1 如何SVN服务器中下载项目从没有安装SVN的机器上下载SVN服务器上的文件选择Subversion后,点击OK按钮:把项目上传到SVN服务器上去3. SVN服务启动3.1 启动一个SVN服务:在任意一个目录下运行svnserve -d -r E:\svn\repository, 我们的服务器程序就已经启动了。
注意不要关闭命令行窗口,关闭窗口也会把svnserve停止建立版本库(Repository)3.2 创建一个版本库(Repository)运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了Subversion服务器之后,可以直接运行,如:3.2.1 DOS命令符创建:在任意个命令符下Svnadmin create E:\svndemo\repository,就会在目录E:\svndemo\repository 下创建一个版本库。
SVN搭建参考手册【详细说明+图片】

SVN搭建参考手册【详细说明+图片】一、SVN 服务器和客户端安装安装服务器程序运行服务端程序VisualSVN-Server-1.6.4.msi,根据提示安装即可,这样我们就有了一套在服务器端运行的环境。
安装客户端程序TortoiseSVN运行TortoiseSVN-1.6.4.16808-win32-svn-1.6.4.msi按照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关,这里为了立刻看到好的效果,还是重新启动机器。
安装客户端语言包运行LanguagePack_1.6.4.16808-win32-zh_CN.msi注意:上述服务端和客户端程序均为开源软件,在使用过程中注意两者版本的统一二、SVN 创建版本库多库管理模式SVNROOT为版本库的根目录,wendang为文档管理版本库、sourcecode为为各系统代码管理版本库。
VisualSVN-Server提供了一个可视化的控制台,通过它我们可以方便的完成版本库的创建和权限的分配工作。
1. 启动VisualSVN Server Manager,在VisualSVN Servers上右键选择Properties2. 在弹出的界面上设置版本库的根位置,设置完毕后会重新启动相关服务3. 在VisualSVN Servers上右键选择Creat New repository ,创建新的版本库,并在文本框中输入库名称上图中的CheckBox如果选中,则在库test下面会创建trunk、branches、tags 三个子目录;不选中,则只创建空的版本库test。
(注:VisualSVN Server Manager不支持对目录下文件的创建和删除操作,这项工作需要借助Tortoise SVN来完成)三、SVN 安全配置用户设置1. 启动VisualSVN Server Manager,右键点击界面上的Users文件夹,选择create user2. 在弹出的Users设置界面上添加新的用户和密码用户组设置1. 在VisualSVN Server Manager上右键点击界面上的Groups文件夹,选择create Group2. 在弹出的Gruop设置界面上添加新的组和组成员安全性设置1. 在版本库中选择一个库,右键选择Properties2. 点击上图中的"Add..."按钮,在下图中选择我们刚才添加的用户,点击OK按钮3. 按照下图所示,分别对用户或组进行授权在线修改密码1. 在安装目录(如C:\Program Files\VisualSVN Server\)的bin文件夹下增加alias.so、mod_cgi.so两个文件2. 在安装目录中增加cgi-bin文件夹,其中包含svnpass、svnpass.ini两个文件,修改svnpass.ini中pwdFilePath地址的指向为版包库中密码存放的文件,例如:pwdFilePath=D:\Repositories\htpasswd3. 修改安装目录中conf文件夹中的httpd-custom.conf,增加如下内容:LoadModule alias_module bin/mod_alias.soLoadModule cgi_module bin/mod_cgi.so<IfModule alias_module>ScriptAlias /cgi-bin/ "C:/Program Files/VisualSVN Server/cgi-bin/"</IfModule>4. 修改安装目录中htdocs文件夹的部分内容注意:上述所需文件参见SVN中相关附件5. 用户通过URL访问版本库,在验证通过后就能完成密码的在线修改四、SVN 备份恢复机制出于资源安全性考虑,为了防止由于配置管理服务器硬件或者软件故障,而导致配置库资源丢失且无法恢复的情况发生,需要对配置库资源进行定期的备份。
SVN入门及配置使用

SVN服务器端配置1、到svn官方网站/下载服务器安装包svn-win32-1.6.1.zip,将该压缩包解压到D:\subversion目录下,出现D:\subversion\bin。
建立D:\svn,在命令行该目录(D:\subversion\bin\)下输入svnadmin create D:/svn/repos1,如果创建成功,D:\svn下将会多一个repos1目录。
2、让svnservice服务随Windows系统一起启动,在命令行下输入:sc create svnservice binPath= "\"D:\subversion\bin\svnserve.exe\" --service -r D:\svn" start= auto3、权限配置:在进行权限配置前,所有的用户都能进行任何操作,在很多情况下是不允许的。
在创建仓库时,仓库目录(如:D:\svn\repos1)下都会生成好几个文件夹,其中conf里面存储的是配置信息,包括三个文件:authz:访问权限配置passwd:用户名和密码配置svnserve.conf:基本配置信息⑴先配置svnserve.conf,将里面几项配置前的注释去掉,最后的内容如下:[general]#anon-access = read#auth-access = writepassword-db = passwdauthz-db = authz这些参数的含义文件里都有详细说明,其中,anon-access和auth-access分别是对匿名用户以及认证用户的访问控制,password- db指明用户密码文件路径,authz-db指明权限配置文件路径。
另外还有一个参数realm用于指明仓库所属的认证域,默认情况下每个仓库位于不同的域(每个仓库有一个唯一的uuid),因此我们可以不设置该项,除非多个仓库需要共用同一份passwd配置。
Linux下SVN服务器的搭建与配置

Linux下SVN服务器的搭建与配置下载最新的svn压缩包/downloads/subversion-1.4.5.tar.gz//解压SubVersion安装包(root用户进行下面的操作) # tar xvzf subversion-1.4.5.tar.gz //进入解压后的目录# cd Subversion-1.4.5//配置subversion安装#./configure --with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion--with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-ssl --with-zlib--enable-maintainer-mode# make//安装# make install//创建库文件所在的目录(svnroot用户进行下面的操作)# mkdir /home/svnroot/repository//进入subversion的bin目录# cd /usr/local/subversion/bin//创建仓库"test"# ./svnadmin create /home/svnroot/repository/test# cd /home/svnroot/repository/test//看看是不是多了些文件,如果是则说明Subversion安装成功了# ls –l# cd /usr/local/subversion/bin//这条语句将把路径/home/user/import下找到的文件导入到你创建的Subversion 仓库中去,//提交后的修订版为1。
# ./svn import /home/user/import file:///home/svnroot/repository/test –m "注释"//不让其他人有该目录的权限# chmod 700 /home/svnroot/repository修改Apache配置文件# cd /usr/local/apadche2/bin//启动Apache# ./apachect1 start# vi /usr/local/apache2/conf/httpd.conf//在最下面添加LoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.so<Location /svn>DAV svnSVNParentPath /home/svnroot/repository/ //svn父目录AuthzSVNAccessFile /home/svnroot/repository/authz.conf //权限配置文件AuthType Basic //连接类型设置AuthName "Subversion.zoneyump" //连接框提示AuthUserFile /home/svnroot/repository/authfile //用户配置文件Require valid-user //采用何种认证</Location>//其中authfile是通过"htpasswd [–c] /home/svnroot/repository/authfile username pass word"来创建的//"Require valid-user"告诉apache在authfile中所有的用户都可以访问。
SVN服务端的配置

SVN服务端的配置1.SVN服务端的配置:安装subversion,我选择的是svn-1.4.1-setup.exe进行安装,安装到D:/Subversion2.创建SVN存储库(repository)也就是建立版本库,我建立的是多库,先在D盘建立一个文件夹SVNROOT然后在这个文件夹里建立版本库,我首先创建一个版本库的名称为:工作文档建立版本库的方法:输入DOS命令:svnadmin create D:/SVN/工作文档repository创建完毕后会在目录下生成若干个文件和文件夹,dav目录是提供Apache 与mod_dav_svn使用的目录,让它们存储内部数据;db目录就是所有版本控制的数据文件;hooks目录放置hook脚本文件的目录;locks用来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端;format文件是一个文里面只放了一个整数,表示当前文件库配置的版本号。
3.配置SVN服务器配置服务器的地方就是你所建立版本库的地方F:/SVNROOT/工作文档。
打开/conf/目录,打开svnserve.conf找到下面的句子:[general]# password-db = passwd# anon-access = none# auth-access = write# authz-db = authz# realm = My First Repository去之每行开头的#,其中第二行是指定身份验证的文件名,即passwd文件.a access = none 是匿名用户不能访问,必须要有用户名和密码。
(注意:问这,一定要注意格式去掉注释后要顶格不能有空)同样打开passwd文件,将# harry = harryssecret# sally = sallyssecret格式为“用户名 = 密码”,如可插入一行:mm = mm,即为系统添加一个mm,密码为mm的用户. (注意顶格写不要有空隙)。
svn服务端配置

配置svn 服务端及客户端(win)一、VisualSVN Server的配置和使用方法【服务器端】安装好VisualSVN Server后【安装过程看这里】,运行VisualSVN Server Manger,下面是启动界面:好的,下面我来添加一个代码库【Repository】,如下图:按上图所示,创建新的代码库,在下图所示的文本框中输入代码库名称:注意:上图中的CheckBox如果选中,则在代码库StartKit下面会创建trunk、branches、tags三个子目录;不选中,则只创建空的代码库StartKit。
点击OK按钮,代码库就创建成功了。
创建完代码库后,没有任何内容在里面。
我会在这个教程的第二部分说明如何迁入源代码。
下面,我们开始安全性设置,在左侧的Users上点击右键:输入上面的信息,点击OK,我们就创建一个用户了。
按照上面的过程,分别添加用户Developer1、tester1、manager1,好了,我们开始添加这些用户到我们刚才创建的项目里:点击上图中的"Add..."按钮,在下图中选择我们刚才添加的用户,点击OK按钮:说明:大家可能注意到了下图中的Groups,是的,你也可以先创建组,把用户添加到各个组中,然后对组进行授权,操作比较简单,在此略过。
按照下图所示,分别对用户【或组】进行授权:点击"确定"按钮,上面的用户就具有了访问StartKit代码库的不同权限。
因为用户starter在团队中是新来者,不希望他向代码库中提交新代码,所以他只能读取代码库中的代码,不能提交代码。
tester1是测试人员,不负责代码编写,所以也是只读权限。
而Developer1和manager1是开发人员和项目经理,自然具有读、写的权限。
在实际的项目开发过程中,Developer和tester往往不可能只有一个人,这时候使用组来授权更加方便,这个大家可以自己练习一下。
Svn服务器搭建简单教程

Svn服务器搭建简单教程SVN(Subversion)是一个开源的版本控制系统,适用于管理项目的源代码、文档和其他文件的历史记录。
它是一个集中式系统,允许多个开发者同时修改和协作。
下面是一个简单的教程,说明如何搭建一个SVN服务器。
1.安装SVN服务器软件2.创建SVN仓库在安装完SVN服务器软件后,需要创建一个新的SVN仓库来存储项目的源代码和文件。
打开命令提示符窗口,进入一个合适的目录,并使用以下命令创建一个SVN仓库:```svnadmin create <repository_name>```这将在当前目录下创建一个名为repository_name的目录,作为SVN 仓库。
3.设置访问权限```anon-access = noneauth-access = write```这将允许只有已授权的用户才能访问SVN仓库。
4.创建用户和密码文件在仓库的conf子目录中,还需要创建一个passwd文件来存储用户和密码。
可以使用htpasswd等工具来创建。
在命令提示符窗口中运行以下命令:```htpasswd -cm passwd <username>```这将提示输入用户的密码,并将用户和密码添加到passwd文件中。
可以重复此命令来添加更多的用户。
5.启动SVN服务器切换到SVN仓库所在的目录,并使用以下命令启动SVN服务器:```svnserve -d -r <repository_path>```其中,repository_path是SVN仓库的路径。
这将启动一个SVN服务器进程,并监听3690端口。
6.使用SVN客户端连接服务器在主机上安装一个SVN客户端软件(例如TortoiseSVN),并启动。
右键单击想要将其拷贝到本地的目录,并选择“SVN Checkout”选项。
在URL字段中输入以下URL,并点击“OK”:```svn://<server_ip>/<repository_name>```其中,server_ip是运行SVN服务器的主机的IP地址,repository_name是之前创建的SVN仓库的名称。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SVN精细权限控制原文链接:/ayifa/blog/item/a7708c1885c221b54bedbc40.html本章将详细介绍前一章所涉及的两个配置文件, svnserve.conf 和 authz.conf,通过对配置逐行的描述,来阐明其中的一些细节含义。
除此之外的其他配置、安装等内容,不是本文重点,读者若有什么疑问,请参考后面“参考文献”中列出的一些文档。
这里首先要注意一点,任何配置文件的有效配置行,都 “不允许存在前置空格” ,否则程序可能会出错,给你一个 “Option expected”的提示。
也就是说,如果你直接从本文的纯文本格式中拷贝了相关的配置行过去,需要手动将前置的4个空格全部删除。
当然了,如果你觉得一下子要删除好多行的同样数目的前置空格是一件苦差使,那么也许 UltraEdit 的“Column Mode”编辑模式,可以给你很大帮助。
svnserve.conf“arm\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 没有就是不爽,硬是要改了。
上述的 passwd.conf 和 authz.conf 两个文件也可以作为多个代码库共享使用,我们只要将它们放在公共目录下,比如说放在 ``D:\svn`` 目录下,然后在每个代码库的 svnserve.conf 文件中,使用如下语句:password-db = ..\..\passwd.confauthz-db = ..\..\authz.conf或者:password-db = ../../passwd.confauthz-db = ../../authz.conf这样就可以让多个代码库共享同一个用户密码、目录控制配置文件,这在有些情况下是非常方便的。
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 这个帐号同时存在“总部”和“文档员”两个分组里面,这可不是我老眼昏花写错了,是因为 Subversion 允许我这样设置。
它意味着,这个家伙所拥有的权限,将会比他的同事 rory 要多一些,这样的确很方便。
具体多了哪些呢?请往下看!authz.conf 之项目根目录接着,我们对项目根目录做了限制,该目录只允许arm事业部的经理才能修改,其他人都只能眼巴巴的看着:[arm:/]@g_manager = rw* = r¾“[arm:/]” 表示这个目录结构的相对根节点,或者说是 arm 项目的根目录。
其中的 arm 字样,其实就是代码库的名称,即前面用 svnadmin create 命令创建出来的那个 arm。
¾这里的 “@” 表示接下来的是一个组名,不是用户名。
因为目前 g_manager 组里面只有一个 michael,你当然也可以将 “@g_manager = rw” 这一行替换成 “michael = rw”,而表达的意义完全一样。
¾“*” 表示“除了上面提到的那些人之外的其余所有人”,也就是“除了部门经理外的其他所有人”,当然也包括总经理那个怪老头¾“* = r” 则表示“那些人只能读,不能写”authz.conf 之项目子目录然后,我们要给总部人员开放日志目录的读写权限:[arm:/diary/headquarters]@g_manager = rw@g_headquarters = rw@g_vip = r* =这个子目录的设置有些特色,因为从需求分析中我们知道,这个子目录的权限范围要比其父目录小,它不允许除指定了的之外其他任何人访问。
在这段设置中,我们需要注意以下几点:¾我敢打赌,设计svn的家伙们,大部分都是在类 unix 平台下工作,所以他们总喜欢使用 “/” 来标识子目录,而完全忽视在 MS Windows 下是用 “\”来做同样的事情。
所以这儿,为了表示 “diary\headquarters” 这个目录,我们必须使用 “[arm:/diary/headquarters]” 这样的格式。
当然如果你一定要用 “\” ,那么唯一的结果就是,Subversion 会将你的这部分设置置之不理,全当没看到。
¾这里最后一行的 “* =” 表示,除了经理、总部人员、特别人士之外,任何人都被禁止访问本目录。
这一行是否可以省略呢?不行,因为 “权限具备继承性”,子目录会自动拥有父目录的权限。
若没有这一行,则所有帐号都可以读取 “/diary/headquarters” 目录下的文件。
因为虽然我们并没有设置这个目录的父目录权限,可是默认的规则使得 “/diary” 目录的权限与根目录完全一样,从而让其余帐号获得对 “/diary/headquarters” 目录的 r 权限。
所以简单来说, “* =” 这一句的目的,就是割断权限继承性,使得管理员可以定制某个目录及其子目录的权限,从而完全避开其父目录权限设置的影响。
¾之所以这儿需要将 “@g_vip = r” 一句加上,就是因为存在上述这个解释。
如果说你没有明确地给总经理授予读的权力,则他会和其他人一样,被 “* =” 给排除在外。
¾如果众位看官中间,有谁玩过防火墙配置的话,可能会感觉上述的配置很熟悉。
不过这里有一点与防火墙配置不一样,那就是各个配置行之间,没有“先后顺序”一说。
也就是说,如果我将本段配置的 “* =” 这一行挪到最前面,完全不影响整个配置的最终效果。
接下来我们看看这一段:[arm:/ref]@g_manager = rw@g_docs = rw* = r这里的主要看点,就是 g_docs 组里面包含了一个 linda 帐号,她也同时在 g_headquarters 组里面出现,这就意味着, linda 将具备对“/ref” 和 “diary\headquarters” 两个目录的读写权限。
authz.conf 之目录表示法在前面的描述中,我们都采用 “[repos:/some/dir]” 这样的格式来表示项目的某个目录,比如上一小节中的 “[arm:/diary/headquarters]” 。
而实际上,Subversion 允许你采用 “[/some/dir]” 这样的格式,即不指定代码库的方式来表示目录,此时的目录就匹配所有项目。
对于使用 svnserve 的用户来说,只有当 svnserve 运行的时候使用了 “-r” 参数,并且让多个代码库共享同一个目录权限文件(即 authz.conf 或authz)时,不指明代码库名称才有可能惹麻烦。
一般情况下,我们对每个代码库都会独立使用配置文件,毕竟每个项目的目录结构,都有很大不同,混在一起意义不大。
因此一般来说,为简洁起见,都可以不指明代码库名称。
本文全都指明了代码库名称,主要是为了将来扩展成同一个配置文件,以方便配合 Apache 服务器。
对于使用 Apache 的用户来说,它们二者可有着很大的不同,因为此时往往习惯于使用一个公共的目录权限配置文件。
如果你使用了 SVNParentPath 指令,则指定版本库的名字是很重要的,因为假若你使用后者,那么 “[/some/dir]”部分就会与所有代码库项目的 “[/some/dir]” 目录匹配。
如果你使用 SVNPath 指令,则这两种表示方式就没有什么区别了,毕竟只有一个版本库。
authz.conf 的其他注意点1.父目录的 “r” 权限,对子目录 “w” 权限的影响。
2.把这个问题专门提出来,是因为在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 denied”,哇,太酷了。