`

Subversion使用Redmine帐户验证简单应用、高级应用以及优化

阅读更多

这是原创: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的应用详解

    本讲解将深入探讨SubVersion的基础概念、安装配置、基本操作以及在实际项目中的应用。 ### 1. SubVersion 基础 SubVersion的核心思想是版本化文件系统,它记录了文件和目录的历史版本,允许用户随时回滚到之前的...

    ansible-redmine:ansible playbook 通过乘客安装 git、subversion 和 redmine

    《使用Ansible通过Passenger安装Git、Subversion和Redmine》 在当今的DevOps环境中,自动化运维工具的使用越来越普遍,其中Ansible因其简洁易用的特性深受喜爱。本篇文章将详细介绍如何利用Ansible Redmine ...

    Windows下Subversion安装使用

    Windows下Subversion安装使用 Windows下Subversion安装使用

    版本控制软件Subversion使用

    相较于CVS,Subversion具有以下优势:更高的安全性,支持更复杂的目录操作,优化的二进制文件处理机制,更高效的网络传输速度,以及更加灵活的分支和标签管理。这些改进使得Subversion成为了现代软件开发中的首选...

    Subversion使用简介

    本篇文章将深入探讨Subversion的基本概念、安装与配置,以及日常开发中的使用方法。 1. **基本概念** - **仓库(Repository)**:存储项目所有文件和版本历史的地方。 - **工作副本(Working Copy)**:用户在...

    Redmine 管理员手册

    Redmine是一款开源的Web应用程序,专门用于项目管理。它基于Ruby on Rails框架开发,支持多种数据库,并且可以作为独立应用或与现有Web应用集成。Redmine提供了包括问题跟踪、时间跟踪、文档管理、wiki和多项目管理...

    Subversion Edge详细安装与使用手册

    ### Subversion Edge 详细安装与使用手册 #### 一、Subversion Edge 下载与安装 ##### 1.1 下载地址 Subversion Edge 的下载地址为:[http://www.collab.net/svnedge](http://www.collab.net/svnedge)。 ##### ...

    Subversion使用说明

    Subversion使用说明 1. 概述 Subversion(简称SVN)是一种版本控制系统,用于管理文件和目录的变更历史,使多人协作开发成为可能。它允许开发者在项目开发过程中跟踪每一次修改,以便于回溯、合并代码以及解决冲突...

    linux下redmine安装笔记

    在Linux环境下安装Redmine是一个涉及多个步骤的过程,其中包括设置MySQL数据库、安装Ruby环境及相关插件、获取Redmine源码并配置、初始化数据库以及启动服务器。以下是对这些步骤的详细说明: 1. **安装MySQL数据库...

    redmine与SVN的Https方式结合

    - 打开Redmine安装目录下的`lib/redmine/scm/adapters/`文件夹,找到`subversion_adapter.rb`文件。 - 修改文件中的`credentials_string`方法,使其能够识别并使用SSL凭证: ```ruby def credentials_string ...

    redmine在linux上的安装步骤

    Redmine 可以通过 BitNami Redmine Stack 进行安装,BitNami Redmine Stack 是一个一键安装程序包,包括 Apache、MySQL、Ruby On Rails 和 Subversion 等组件。首先,需要下载 BitNami Redmine Stack,然后按照操作...

    redmine与svn集成

    Redmine 是一个基于 Web 的项目管理工具,具有功能强大、灵活、可扩展性强等特点,而 SVN(Subversion)是一种版本控制系统,用于管理代码的版本控制。Redmine 与 SVN 的集成可以实现项目管理和版本控制的紧密结合,...

    使用Subversion进行版本控制 PDF中文版

    《使用Subversion进行版本控制 PDF中文版》这一资源,深入介绍了Subversion(SVN)这一流行版本控制系统的基本概念、操作流程以及高级功能,对于想要深入了解或学习版本控制系统的开发者来说,无疑是一份宝贵的学习...

    Subversion 使用简介PPT

    Subversion 是一个开源的版本控制系统 Subversion 可以帮助我们管理文件、目录及随着时间的推移对它们的修改 通过Subversion我们可以恢复数据之前的版本或者查看数据的修改历史

    版本控制软件SubVersion使用说明

    ### 版本控制软件SubVersion使用说明 #### 版本管理概述 版本控制系统,作为支撑项目开发的关键工具,被形象地比喻为项目级别的撤销按钮、时间机器和协作平台。它确保了开发过程中每一处改动都能被追踪记录,避免...

    使用Subversion进行版本控制(针对 Subversion 1.4)

    使用Subversion进行版本控制针对 Subversion 1.4(根据r2866编译) 参照网页版 http://svndoc.iusesvn.com/svnbook/1.4/制作而成。 目录 前言 序言 读者 怎样阅读本书 本书约定 排版习惯 图标 本书的结构 本书是...

    使用Subversion进行版本控制

    下面将详细介绍Subversion的基本概念、配置以及高级应用。 **基本概念** 1. **仓库(Repository)**: 存储所有版本历史的地方,类似于数据库。 2. **工作副本(Working Copy)**: 用户在本地计算机上下载的仓库的...

Global site tag (gtag.js) - Google Analytics