SVN多项目权限管理
Subversion的目录结构是很自由的,所有的规划都必须是你自己规定,考虑一个 subversion仓库的目录树,你可以把任何一个目录认定为一个项目,
你可以只checkout这个目录下的所有文件进行编码.所以你可以在一个仓库内保存 多个项目,也可以一个仓库保存一个项目而使用多个仓库。
我个人比较喜欢第二种,因为 Subversion的每次commit都会导致整个仓库 版本号增加一个,会使得 多个项目的 版本号出现断层。而且如果 多个项目参与人不同,
就必须使用apache2进行细粒度的权限控制,不是太方便。一个仓库一个项目,显得更优雅一些。
1.创建两个代码仓库
cd /home/svn
svnadmin create project1
svnadmin create project2
1.复制 authz passwd 两文件到SVN文件夹下
cp authz passwd /home/svn1
3.修改project1 和project2 下svnserve.conf文件
vim svnserve.conf1
修改成如下:
anon-access = none //禁止匿名访问
auth-access = write
password-db = /home/svn/passwd //统一使用密码文件
authz-db = /home/svn/authz
realm = project1 //权限域名,很重要,写你的工程名1
4.修改两个权限管理文件
vim passwd
//用户名 = 密码
[users]
eg1 = 123
eg2 = 123
vim authz
[groups] //分组
admin = eg1,eg2
[project1:/] //工程1的访问控制,guest1,2无法访问
@admin = rw
或
eg1 = rw
eg2 = rw
[project2:/]
@admin = rw
1.重启
svnserve -d -r /home/svn1
停止命令
killall svnserve