一、前言
上文介绍了如何在服务器安装配置svn服务, 这篇文章简单介绍一下我对svn权限控制的理解
svn的权限通过authz进行控制
用户和密码通过passwd进行控制
二、应用分析
一般来说每个项目建立一个仓库, 通过管理仓库下的authz和passwd进行权限控制即可
但是为了方便统一管理, 可以将这两个文件放到svn项目仓库的根目录, 统一分配账号和权限
举个例子,如果公司现在有个管理系统【file-system】在开发, 张三是项目经理, 李四(水平稍微好点)、王五是开发人员, 赵六是测试人员
可以这样管理
passwd文件
通过passwd分配用户账户和密码
# 项目经理
zhangsan = 123456
# 开发人员
lisi = 123456
wangwu = 123456
# 测试人员
zhaoliu = 123456
authz
在这个文件中进行授权
[groups]
# 定义角色(分组)
# 项目经理
admin = zhangsan
# 开发人员
dev = lisi,wangwu
# 测试人员
test = zhaoliu
[/]
* =
# 关闭所有人的权限
[file-system:/trunk]
# 项目经理对trunk分支有读写权力
@admin = rw
# 项目经理对分支有完全控制权限
[file-system:/branches]
@admin = rw
# 项目经理对标签完全控制权限
[file-system:/tags]
@admin = rw
# 开发分支项目经理和开发
[file-system:/branches/dev]
@admin = rw
@dev = rw
# 单独对配置进行控制,由能力较强的李四控制
[file-system:/branches/dev/config]
lisi = rw
wangwu = r
# 配置测试人员的权限
[file-system:/branches/test]
zhaoliu = r
在这个配置文件中
对项目经理开放了所有权限【*】
李四开放了开发分支【dev】的所有权限
王五开放了开发分支【dev】除了config文件夹以外的所有权限,对config有读的权限
赵六对测试分支【test】有读的权限
其他仓库可参考这个进行配置
三、总结
由于没有担任过项目经理, 自己玩git和svn也就是单机,对权限控制这块是我自己的理解,大家斟酌是否适用自己的项目, 在开发中应该由项目经理在trunk主干中建立branches/dev分支,开发人员就在这个分支中进行开发,开发结束后由项目经理推送到测试分支,测试人员在测试分支中进行测试
权限测试过没问题,设计是否合理日后进行实践