[test:/] //这表示,仓库test的根目录下的访问权限
User1 = rw //test仓库user1用户具有读和写权限
User2 = r //test仓库user2用户具有读权限
[/] //这个表示在所有仓库的根目录下
* = r //这个表示对所有的用户都具有读权限
#[groups] //这个表示群组设置
#svn1-developers = user1 //这个表示某群组里的成员
#svn2-developers = user1
删除Subversion默认安装库文件权限文件authz,passwd
# rm /home/svnroot/repository/test/conf/authz
# rm /home/svnroot/repository/test/conf/passwd
将这个设置完成后。重启Apache,可以通过
http://localhost/svn/test
这个URL来访问仓库了,当然,受权限的限制,必须是合法用户才能访问且具有相应的权限
四.一些备忘:
1. svn checkout http://localhost/svn/example
2. svn commit时的默认编辑器的环境变量$SVN_EDITOR=vi需要手动设定,用kate好像有问题
3.如果linux的登录用户名密码都和svn的其中一个用户名密码相同时,在checkout的时候不会要求输入用户名密码直接可以checkout出来。比如:linux有个用户user1,svn也有一个用户user1,并且密码都是一样的,当用user1登录linux后,执行checkout,可以直接提取出源码文件,不用输入认证信息。
4.在svn使用过程中牵扯到几种权限:文件系统的权限,linux系统权限,svn用户的权限,apache进程的权限。
文件系统的权限,linux系统权限:这里相同的意思,是平时大家使用linux时文件夹和文件的访问权限。在svn建立仓库,文件夹,配置文件的时候用svnroot用户,并将仓库权限设置为700,不允许其他用户直接通过文件系统查看,只能由svnroot进行管理。
apache进程的权限:因为所有跟仓库传输的操作都是通过apache进程进行的,所以即使你给svn用户设置了很大的权限,但是apache进程没有访问仓库或者相关文件的权限也没有用,apache进程的权限设置在/usr/local/apache/conf/httpd.conf文件中配置,找到文件中的这两行:
User daemon #将daemon改为svnroot,让apache进程以svnroot的身份运行
Group daemon
svn用户的权限:是在repository/authz.conf文件中设置的权限信息,是svn用来管理仓库访问权限的。
5. svn服务器设置有两种方式:http和svnserve。这里介绍的是http方法
6.在/etc/profile的结尾设置一些svn启动时要做的工作# start apache server for svn
/usr/sbin/apachectl start
export SVN_EDITOR=vi
7. APR libraries安装SVN的时候好指定--with-apr=和--with-apr-util=参数到Apache安装的根目录
(ServerRoot)下,而不是使用缺省的SVN安装包中自带的apr。否则如果你安装的Apache
版本不同有可能导致APR库不匹配,出现类似:
Can't set position pointer in file '/svn/test/db/revs/1': Invalid argument的错误。
Updated 2006-04-20 16:30 --比如说如果你安装的是apache 2.2.0版本,需要在编译安装svn的时候指定
--with-apxs和--with-apr参数到你的apache2.2.0安装目录下:
./configure --divfix=${subversionInstallFolder} /
--with-apxs=${apacheInstallFolder}/bin/apxs /
--with-apr=${apacheInstallFolder} /
--with-apr-util=${apacheInstallFolder} /
--with-ssl /
--with-zlib /
--enable-maintainer-mode