CentOS上Redmine跟SVN的整合

一. 先安装SVN
 
二.SVN跟Apache整合
 
1.新建一个SVN版本库

#cd  /var/www/

#mkdir svn

#cd svn

#svnadmin create test1    //SVN安装完之后,创建SVN仓库的根目录为/var/www/svn,在里面新建一个版本库test1

2.Apache配置文件修改

#vi /usr/local/apache/conf/httpd.conf

在里面加入如下内容

LoadModule dav_svn_module    modules/mod_dav_svn.so
LoadModule authz_svn_module  modules/mod_authz_svn.so
<Location /svn>
  DAV svn
  SVNParentPath /var/www/svn
  SVNListParentPath on
  Order deny,allow
  Allow from all
</Location>

3.SVN配置文件修改

#cd test1
#vi config/authz

加入以下两行

[/]
harry = rw

#vi config/passwd

harry = harryssecret  //将这行前面的#去掉

#vi config/svnserve.conf

将以下几行前面的#去掉

anon-access = read
auth-access = write
password-db = passwd
authz-db = authz

三.redmine中SVN的配置

登录redmine后台,管理-》项目-》选择某个项目-》选择版本库选项卡。在SCM中选择Subversion,填入URL,填入登录名和密码(登录名和密码在此例中可以填写为,用户名:harry,密码harrayssecret)。然后在前台查看这个项目,会有版本库菜单,点击即可显示此项目对应的版本库信息。

以上的配置仅限于http的URL,如果你的SVN服务器搭建的是https的,还需要做如下操作。

# vi /usr/local/redmine  //进入你放redmine的文件夹
#svn ls --config-dir webserverRedmine --xml https://XX.XX.XXX.XXX/test1/

这时候会要求你输入用户名密码,输入正确的用户名密码,是否永久保存ssl凭证,确认。此时会在redmine所在文件夹下生成webserverRedmine目录,目录内容为该SVNssl凭证。

修改/usr/local/redmine/lib/redmine/scm/adapters/文件夹下subversion_adapter.rb的内容。
找到:

  def credentials_string
  str = ''
  str << " --username #{shell_quote(@login)}" unless @login.blank?
  str << " --password #{shell_quote(@password)}" unless @login.blank? || @password.blank?
  str << " --no-auth-cache --non-interactive "
  str
  end

将其修改为:

  def credentials_string
  str = ''
  str << " --username #{shell_quote(@login)}" unless @login.blank?
  str << " --password #{shell_quote(@password)}" unless @login.blank? || @password.blank?
  str << " --trust-server-cert --no-auth-cache --non-interactive --config-dir /usr/local/redmine/ webserverRedmine”//(注意:路径最后的文件夹不要加斜杠)
  str
  end

然后重启apache,版本库就可以访问了。//同时需要注意webserverRedmine文件夹的权限哦

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/9558baf5a5b747fc8be236b85250bae5.html