Ubuntu中配置Subversion

一、安装Subversion和Apache

1.安装Subversion。为求方便,在Ubuntu中直接使用源来安装Subversion

apt-get install subversion

apt-get install libapache2-svn

2.安装apache。同上,使用源安装!

apt-get install apache2

如果在源列表中找不到Subversion,就先更新一下源:apt-get
update。

二、创建SVN库

确定svn版本库的目录,如/home/svn,创建目录mkdir /home/svn。

创建SVN库,如testing 。Svnadmin create /home/svn/testing

更改/home/svn权限及用户组

chmod -R g+rws /home/svn

chown -R root:subversion

用ls命令查看/home/svn/tesing,如存在文件及目录,则说明testing库创建成功。在Linux中可用svn co file:///home/svn/testing访问该库

三、通过http协议访问

要使用http协议访问,需要将SVN库属主更改为www-data,否则会出现Permission Denied的情况!如修改testing库的属主:chown -R www-data /home/svn/testing

在/etc/apache2/mods-available中,将以下文档添加到dav_svn.conf

<Location /svn/testing>

DAV svn

SVNPath /home/svn/testing

AuthType Basic

AuthName “myproject subversion repository”

AuthUserFile /etc/subversion/passwd

<LimitExcept GET PROPFIND OPTIONS REPORT>

Require valid-user

</LimitExcept>

</Location>

如果要求每次访问都使用用户密码登录,则把<LimitExcept>和</LimitExcept>注释掉。

四、基于多库的权限配置

要同时管理多个库,可在dav_svn.conf中指定svn库的父目录,将SVNPath /home/svn/testing一行修改为SVNParentPath /home/svn/,如下

<Location /svn/>

DAV svn

SVNParentPath /home/svn/

AuthType Basic

AuthName “myproject subversion repository”

AuthUserFile /etc/subversion/passwd

AuthzSVNAccessFIle /etc/subversion/authz

<LimitExcept GET PROPFIND OPTIONS
REPORT>

Require valid-user

</LimitExcept>

</Location>
#SVNParentPath是用来指定SVN库父目录用的,具体的路径要根据创建库而定,如上面的配置,则可以通过http://localhost/svn/testing来访问testing这个库。
#AuthUserFile是用来保存用户密码的文件,理论上来说可以位于任何地方。之后可以用htpasswd来添加用户,第一次添加时,使用htpasswd –c /etc/subversion/passwd test来生成passwd文件,-c参数是指创建passwd文件。
#AuthzSVNAccessFile是用户权限控制配置文件,理论上也是可以存在任何地方的,如果不知道文件如何编写,可以在已经创建的SVN库中conf文件夹中,直接拷贝到dav_svn.conf中指定的路径即可!

Authz权限控制样例

[groups]

testing =test1,test2

develop =develop1,develop2

[testing:/]

@testing = rw

* =

[testing:/1]

test1 = rw

#[group]在其下设定组及组成员,格式为

Groupname =
user1,user2,userx

#[testing:/]表示testing库的根目录,在其下编写权限规则
* = 表示任何用户都无任何权限,@testing
= rw 表示testing组成员拥有读写权限,只读则用r表示。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注