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 来访问