Subversion版本管理器简单配置说明
 
2009-04-17 作者:XChinux 来源:xchinux的BLOG
 
Subversion版本管理器简单配置说明,没地方放了,应该属于服务器搭建之类的分类的,可是论坛里现在还没有这样的版块,所以就先放在这里了。

一、Subversion的下载与安装

Subversion的官方网站:http://subversion.tigris.org/
可以在官方网站上下载Subversion的最新版本。本说明使用的是1.1.4的Win32版。
下载下来Subversion安装文件后,直接安装就可以了。这里假设系统上已经安装好了Apache了,这样,Subversion安装的时候选择Apache方式,它就会自动的配置相关的模块到Apache里。

二、Subversion的建立与使用仓库使用。

$svnadmin create /path/to/repos
在这里,我们假设设置D盘svn目录下的svn1和svn2两个目录为仓库。
svnadmin create d:/svn/svn1
svnadmin create d:/svn/svn2
这样,我们使用的时候,就可以向里面提交文件。
仓库的使用,必须先把服务搭建起来才行。我们等后面的服务器配置后再讲。

三、Subversion服务器的搭建

我们使用与Apache模块的方式运行。
首先,把我们需要的SVN模块加载上,修改Apache的配置文件httpd.conf:

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule dav_module modules/mod_dav.so
LoadModule authz_svn_module modules/mod_authz_svn.so

然后配置仓库:

<Location /svn>
  DAV svn
  SVNParentPath d:/svn
</Location>
然后,配置验证方式:
这里使用旦Apache的验证方式:

htpasswd -cm d:/svn/svn-auth-file user1
然后,会提示输入密码,这里就加入了一个用户了。然后再加一个用户:
htpasswd -m d:/svn/svn-auth-file user2

然后修改配置:
<Location /svn>
DAV svn
SVNParentPath d:/svn
AuthType Basic
AuthName “Subversion repository”
AuthUserFile d:/svn/svn-auth-file
Require valid-user
AuthzSVNAccessFile d:/svn/svn-access-file
</Location>
下面,就要写这个svn-access-file文件了,它是用来控制用户访问仓库的权限的,我们把说明写在后面
[svn1:/]               //这表示,仓库svn1的根目录下的访问权限
harry = rw             // svn1仓库harry用户具有读和写权限
sally = r               // svn1仓库sally用户具有读权限
[svn2:/]               //svn2仓库根目录下的访问权限
harry = r               // harry用户在svn2仓库根目录下只有读权限
sally =               // sally用户在 svn2仓库根目录下无任何权限
#[/]               // 这个表示在所有仓库的根目录下
#* = r               // 这个表示对所有的用户都具有读权限
#[groups]               // 这个表示群组设置
#svn1-developers = harry, sally           // 这个表示某群组里的成员
#svn2-developers = sally
#[svn1:/]            
#@svn1-developers = rw       // 如果在前面加上@符号,则表示这是个群组权限设置

将这个设置完成后。重启Apache,就可以通过
http://localhost/svn/svn1
http://localhost/svn/svn2
这两个URL来访问仓库了,当然,要受权限的限制,必须是合法用户才能访问且具有相应的权限
客户端的使用,可以通过许多客户端GUI软件来用。比如TortoiseSVN就很好用。
官方网址:http://tortoisesvn.tigris.org/

以上是使用Apache方式配置服务器.如果不使用Apache,使用svnserve方式,则灵活性要小得多.下面讲一个例子说明一下,以linux下为例子:

一.找一个地方集中放所有的SVN库,为方便起见,我们在根目录下建一个目录(或者可挂在一个单独的分区上,把/svn挂上),最好新建一个svn用户来对subversion进行配置,不要用root用户
这里假设创建了个库: test1, test2二

#mkdir /svn
$svnadmin create /svn/test1
$svnadmin create /svn/test2

二.配置权限,编辑每个库下的conf/svnserve.conf, conf/passwd这两个文件
因为svnserve的限制,所以对权限的配置比较的笼统,如要想更灵活,得用其它方式(ssh或者pl等)

teset1/conf/svnserve.conf
Quote:
[general]
anon-access = none
auth-access = write
password-db = passwd
realm = test1 Repository

test2/conf/svnserve.conf
Quote:
[general]
anon-access = none
auth-access = write
password-db = passwd
realm = test2 Repository


然后,编辑每个库下的conf/passwd文件(用户名和密码)
test1/conf/passwd

Quote:
[users]
admin = adminpasswd
test1 = test1passwd

test2/conf/passwd
Quote:
[users]
admin = adminpasswd
test2 = test2passwd


三.启动服务器,因为要使用多个库,所以不使用-r参数指定库
$svnserve -d

如此,服务器基本配置完毕
客户端的使用和前面的一样只不过,库网址变成了svn://样式的了,比如:
svn co svn://localhost/svn/test1
然后会提示用户名和密码


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织