UBUNTU SVN 服务器配置

安装

1 $ sudo apt-get install apache2
2 $ sudo apt-get install subversion
3 $ sudo apt-get install libapache2-svn

 

创建 SVN 仓库

许多位置都可以放置 Subversion 文件仓库,其中两个最常用的是:/usr/local/svn 以及 /home/svn。为了在下面的描述中简单明了,我们假设您的 Subversion 文件仓库放在 /home/svn,并且你的项目名称是简单的“myproject”。

同样的,也有许多常用的方式设置文件仓库的访问权限。然而,这也是安装过程中最经常出现错误的地方,因此我们会对此进行一个详细说明。通常的情况下,您应该创建一个名为“Subversion”的用户组,该组是SVN仓库所在的目录的拥有者。下面是一个快速的操作说明,有关内容请参考相关文档的详细说明:

1 $ sudo addgroup subversion
2 $ sudo usermod -G subversion -a www-data

现在执行下面的命令

1 $ sudo mkdir /home/svn
2 $ cd /home/svn
3 $ sudo mkdir myproject
4 $ sudo chown -R root:subversion myproject

下面的命令用于创建 SVN 文件仓库

1 $ sudo svnadmin create /home/svn/myproject

赋予组成员对所有新加入文件仓库的文件拥有相应的权限

1 $ sudo chmod -R g+rws myproject


通过WebDAV协议访问(http://)

要通过 WebDAV 协议访问 SVN 文件仓库,必须配置您的 Apache 2 Web 服务器。必须加入下面的代码片段到 /etc/apache2/mods-available/dav_svn.conf中:

 1 <Location /svn>
 2 DAV svn
 3 SVNParentPath /home/svn
 4 AuthType Basic
 5 AuthName "myproject subversion repository"
 6 AuthUserFile /home/svn/conf/passwd
 7 AuthzSVNAccessFile /home/svn/conf/authz
 8 #<LimitExcept GET PROPFIND OPTIONS REPORT>
 9 Require valid-user
10 #</LimitExcept>
11 </Location>

如果需要用户每次登录时都进行用户密码验证,请将<LimitExcept GET PROPFIND OPTIONS REPORT>与</LimitExcept>两行注释掉。

当您添加了上面的内容,您必须重新起动 Apache 2 Web 服务器,请输入下面的命令:

1 $ sudo /etc/init.d/apache2 restart

接下来,您需要创建 /etc/subversion/passwd 文件,该文件包含了用户授权的详细信息。要添加用户,您可以执行下面的命令:

添加用户
$ sudo htpasswd /home/svn/conf/passwd user_name
添加用户并重新生成 passwd 文件,如果 passwd 文件存在将会删除原文件
$ sudo htpasswd -c /home/svn/conf/passwd user_name

它会提示您输入密码,当您输入了密码,该用户就建立了。“-c”选项表示创建新的/home/svn/conf/passwd文件,所以user_name所指的用户将是文件中唯一的用户。如果要添加其他用户,则去掉“-c”选项即可

 

AUTHZ 权限管理

[groups]
admin = user1, user2

[proj-0:/]
@admin = r
user3 = rw

[proj-1:/]
user1 = rw

[proj-1:/path/]
user3 = rw

 

补充:svnserve 服务的部署及使用

在创建完代码仓库后,需要修改其 conf/svnserve.conf 如下:

[general]
anon-access = none   # 不修改此选项会导致获取不了 svn 日志
password-db = ../../conf/passwd
authz-db = ../../conf/authz

passwd 文件格式

[users]
username = passwd

authz 文件格式同上

启动 svnserve 服务

svnserve -d -r /home/svn   # 可以把这行脚本添加至  /etc/rc.local 中,系统启动后将自动启动 svn 服务 

配置完成后可通过 svn:/192.168.1.6/project  来访问

 

posted @ 2012-04-27 16:05  ouuy  阅读(...)  评论(...编辑  收藏