这是原创:http://www.himysql.com/vcs/subversion-redmine-advance.html
一、简介
Redmine是一套开源、免费跨平台的项目管理系统,是项目管理界的后起之秀。是中小型开发团队项目管理的首选系统。
Redmine跟Trac类似,但是支持多项目、wiki、多种版本控制系统(Subversion、Git、Mercurial)。
Subversion就不累述了。
Subversion的帐号管理默认只能通过htpasswd添加及管理密码。新员工加入团队或者离开团队时SVN帐号管理起来都非常不方便。通过redmine系统可以实现员工自行操作实现修改密码、忘记密码取回等操作。
今天就探讨一个使用Redmine帐号来验证Subversion的简单应用及高级应用。
二、软件准备
Subversion 1.4以上版本、Apache 2.0以上版本、mod_dav_svn.so(注意要和apache版本对应)、redmine、mod_auth_mysql 2.8以上版本
本次实验的版本号如下:
subversion 1.6.5(通过yum从rpmforge装的)、apache 2.2(centos rpm装的)、mod_dav_svn.so(同样通过yum从rpmforge装的)、redmine 0.8.7
mod_auth_mysql(同样通过yum从rpmforge装的)
上述三个软件以及两个apache插件装好后就可以开工啦。(redmine具体安装方法请参考官方安装文档或者网上教程)
什么,你说我懒?!
那就对了,我们要把精力放在关键的地方,非关键的地方能快速通过的就快速通过。
三、简单应用
先来个简单的应用:redmine系统中所有注册且已经激活的帐号能访问SVN。
新注册的帐号由redmine管理员激活之后,即可访问subversion。
httpd.conf中配置如下:
<Location /svn>
Order Deny,Allow
Deny from all
DAV svn
SVNListParentPath on
SVNParentPath /Data/SVNRepo
AuthzSVNAccessFile /Data/SVNRepo/authz #若需要进行路径精准控制,需要加上该句
AuthMySQLEnable On
AuthMySQLHost 192.168.xxx.xxx # redmine 所用户MySQL数据服务器的IP
AuthMySQLUser redmine # redmine链接数据库所用的用户名
AuthMySQLPassword redminepasswd # redmine链接数据库所用的密码
AuthMySQLDB redmine087 # redmine所用数据库名
AuthMySQLUserTable "users“
AuthMySQLNameField login
AuthMySQLPasswordField hashed_password
AuthMySQLPwEncryption sha1
AuthMySQLUserCondition " users.`status` = 1"
Require valid-user
</Location>
改完重启apache即可。
四、高级应用
Redmine功能强大,可以用来在公司、团队中分享知识、BUG管理、进度管理等。但并不是每个Redmine用户都需要访问Subversion,所以需要控制指定某一部分用户才能访问Subversion。
经过研究,我发现结合redmine项目成员管理可以实现上述目的。
思路:新建一个项目(这个项目并不是真正的项目),就是为了验证Subversion之用。即,这个项目的成员都可以访问Subversion。新注册帐号由redmine管理员激活,并且将新注册帐号设成刚才新建项目的成员。
实现:
<Location /svn>
Order Deny,Allow
Deny from all
DAV svn
SVNListParentPath on
SVNParentPath /Data/SVNRepo
AuthzSVNAccessFile /Data/SVNRepo/authz
AuthName "SVN"
AuthType Basic
AuthMySQLEnable On
AuthMySQLHost 192.168.xxx.xxx
AuthMySQLUser redmine
AuthMySQLPassword redmine_password
AuthMySQLDB redmine087
AuthMySQLUserTable "users, members" #注意这儿跟上不一样
AuthMySQLNameField login
AuthMySQLPasswordField hashed_password
AuthMySQLPwEncryption sha1
AuthMySQLUserCondition "members.`project_id` = 1 and members.`role_id` IN (3, 4) and users.`status` = 1 and users.`login` <> '' and users.id = members.`user_id`" #project_id = 1具体数字要根据用来验证用户的项目的ID来定
Require valid-user
</Location>
五、优化
若团队成员比较多,为了减轻数据库的压力,提高验证响应速度,可以对redmine数据库进行小小的优化:
对redmine数据库中members表添加user_id、project_id、role_id联合索引。
事半功倍哦。
相关推荐
SubVersion用法ppt详解
Windows下Subversion安装使用 Windows下Subversion安装使用
使用Subversion进行版本控制针对 Subversion 1.4(根据r2866编译) 参照网页版 http://svndoc.iusesvn.com/svnbook/1.4/制作而成。 目录 前言 序言 读者 怎样阅读本书 本书约定 排版习惯 图标 本书的结构 本书是...
Subversion使用说明.doc
版本控制软件Subversion使用说明ppt。
subversion1.1 使用指南中文版. 对各种svn命令做了详细讲解.
版本控制软件SubVersion使用说明
Subversion 是一个开源的版本控制系统 Subversion 可以帮助我们管理文件、目录及随着时间的推移对它们的修改 通过Subversion我们可以恢复数据之前的版本或者查看数据的修改历史
Subversion使用手册(开发人员Subversion使用手册(开发人员Subversion使用手册(开发人员Subversion使用手册(开发人员Subversion使用手册(开发人员
ansible-redmine
ubuntu下安装subversion客户端及使用方法
Subversion客户端TortoiseSVN简单使用指南
使用Subversion进行版本控制 PDF中文版
实效版本控制:Subversion使用指南(第2版).zip
Subversion Subversion Subversion Subversion Subversion
Subversion以及TortoiseSVN安装包
Subversion使用简介,Subversion服务方和客户方均基于Windows操作系统,包含Subversion的服务端和客户端软件的安装,
Subversion Edge详细安装与使用手册,包括3.1版本的而详细安装说明以及建库,权限配置说明