1. 安装Subversion
sudo apt-get install subversionsudo apt-get install subversion-tools
2. 安装Apache
sudo apt-get install apache2sudo apt-get install libapache2-svn
sudo apt-get install apache2-utils //在添加用户时需要用到
3. Apache和Subversion的集成
查看/etc/apache2/mods-enabled/dav_svn.load文件,有mod_dav_svn.so和mod_authz_svn.so这两个动态库说明apache已经加载了Subversion的访问控制模块。如果没有,手动添加。
添加mod_authz_svn.so则是sudo gedit /etc/apache2/mods_enables/dav_svn.load
然后:LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so
4.编辑/etc/apache2/mods-enabled/dav_svn.conf文件,在最后加入下述内容:
<Location /svn>DAV svnSVNParentPath /home/svnAuthType BasicAuthName "Subversion Repository"AuthUserFile /etc/subversion/dav_svn.passwordAuthzSVNAccessFile /etc/subversion/dav_svn.authz
Require valid-user</Location>
5.
Sudo touch /etc/subversion/dav_svn.password
Sudo touch /etc/subversion/dav_svn.authz来创建这2个不存在的文件。
/etc/subversion目录为项目配置目录,其公共数据可存放到此目录
6.在添加了上述内容后,必须重启Apache2 HTTP服务器
Sudo /etc/init.d/apache2 restart
7.创建 SVN 仓库
sudo addgroup subversionsudo usermod -G subversion -a www-data
Sudo adduser xxx subversion (xxx:当前用户)
结果看上去,像这样。
$ cat /etc/group|grep subversionsubversion:x:1002:www-data,exp
Sudo mkdir /home/svnsudo mkdir /home/svn/repository
Cd /home/svn
sudo chown -R root:subversion repository
下面的命令用于创建 SVN 文件仓库:
Sudo svnadmin create /home/svn/repository
赋予组成员对所有新加入文件仓库的文件拥有相应的权限:
$ sudo chmod -R g+rws repository
查看txn-current-lock文件的权限和用户以及组信息,应该类似于:
$ls -l /home/svn/repos/db/txn-current-lock
-rw-rwSr-- 1 root subversion 0 2009-06-18 15:33 txn-current-lock
除了权限以外,用户及其组如果不对,则仍然会遇到上述问题,可以再次运行命令:
$ sudo chown -R root:subversion repository
8. Subversion添加项目
管理员必须考虑的问题是,将每一个项目分别放在不同的版本库里面,还是将它们放在统一的版本库里面。统一的版本库可以让管理员更加容易的升级和备份,不过,由于访问权限控制是针对整个版本库的,所以,统一的版本库也为不同项目配置不同的访问权限带来了麻烦。所以,管理员应该根据实际情况权衡考虑。
我以统一的版本库为例,添加三个项目business,develop和project。首先在一个临时目录下,根据 Subversion 版本控制的一般布局结构,创建出三个项目的主要目录树,如下:
然后用 svn import 命令导入已有的目录树。
svn import /home/svn/tmp/ file:///home/svn/repository/ --message "init"
可以用 svn list 确认导入的项目是否正确:
svn list --verbose file:///home/svn/repository/
如果要查看最新修订版本的信息,可以使用 svnlook info 命令:
svnlook info /home/svn/repository/
还可以在命令后面接上 “--revision 版本号” 来指定某一个修订版的显示。
还可以用如下命令来显示版本库的具体树形结构,后面的 “--show-ids” 选项指定显示每一个显示元素的修改版本 ID。
svnlook tree /home/svn/repository/ --show-ids
9. Subversion添加用户
添加第一个用户,要加参数-c。以后不用加。
Sudo htpasswd -c /etc/subversion/dav_svn.passwd lezg
Subversion追加用户:
Sudo htpasswd /etc/subversion/dav_svn.passwd yang
passwd.conf文件的生成内容是用户名加上密码的 MD5 密文。
10. Subversion分配用户权限
新添加的用户是不能访问Subversion的,还要为他分配权限。编辑/etc/subversion/dav_svn.authz文件,例:
[groups]vip = wangadmin = wangqixuan, yangdevelop-manager = zhongbusiness-manager = shideveloper = ma, hu, zhou, cen, huang [repository:/]
@admin = rw
* = r [repository:/develop/xxx]
@vip =rw
@admin = rw
@develop-manager = rw
* =r
其中* = 表示其它所有用户都没有任何权限。
11. Subversion启动
Sudo svnserve -d -r /home/svn
下面命令可检查是否成功启动:
ps -ef | grep svn
或者
ps -aux | grep svn
本文详细介绍了在Linux环境下如何安装并集成Subversion与Apache,包括安装步骤、配置Apache以支持Subversion访问控制、创建SVN仓库、添加项目、用户管理及权限分配等关键步骤。
1901

被折叠的 条评论
为什么被折叠?



