在Ubuntu Linux中使用Apache2管理Subversion版本控制系统

上次我们讲了Subversion的基本使用,但还只是单机操作,如果要在网络中进行多人协作开发,我们就要使用Web服务器来管理Subversion资源库了。在这里我们选用Apache这个业内最著名服务器的下一代版本Apache 2。

参考资料:Debian-Reference

除安装过程只适用Ubuntu外,别的步骤在其他Linux发行版中都差不多。

(andyluo是我的用户名,请做相应修改)

1、安装Apache2和Subversion模块
在Synaptic里搜索“apache2”, 安装apache2, apache2-common, apache2-utils, apache2-doc(apache文档,推荐安装), libapache2-svn(Apache2的Subversion模块)。
2、创建Subversion库
创建目录:
    $ sudo mkdir -p /var/local/repos
创建Subversion库:
    $ sudo svnadmin create /var/local/repos
将所有权授予Apache(www-data), 使之能对库文件进行读写操作:
    $ sudo chown -R www-data:www-data /var/local/repos
3、配置Apache2(使用基本验证方式,即用户名和密码)
修改/etc/apache2/mods-available/dav_svn.conf, 将对应行改为:
     <Location /repos>
       DAV svn
       SVNPath /var/local/repos
       AuthType Basic
       AuthName "Subversion repository"
       AuthUserFile /etc/subversion/passwd
       <LimitExcept GET PROPFIND OPTIONS REPORT>
         Require valid-user
       </LimitExcept>
     </Location>
可选步骤:添加用户验证文件(添加后,andyluo使用Subversion就不用输入密码了):
    # sudo htpasswd2 -c /etc/subversion/passwd andyluo
4、重启Apache2:
    # sudo /etc/init.d/apache2 restart
5、打开浏览器,访问http://localhost/repos, 就可以看到Subversion库的网页。(当然,现在还没有任何东东,下面我们要导入一些文件)
6、添加/home/andyluo/workspace中的文件到http://localhost/repos下的workspace目录
    $ svn import -m "操作注释" /home/andyluo/workspace http://localhost/repos/workspace
7、checkout http://localhost/repos/workspace 中的文件到/home/andyluo/test
    $ svn checkout http://localhost/repos/workspace /home/andyluo/test

有关Subversion方面的技术,欢迎回复讨论。