每天进步一点点

【转载】win(Redhat)+apache2.2.12+svn1.6.6+svnnotify 邮件提醒配置总结

上一篇 / 下一篇  2011-01-27 23:08:12 / 个人分类:配置管理

 此文是在Win32下配置的···不过在RedHat下也可使用,把相应的安装包换为Linux下tar包或者rpm包即可··配置过程一样··


Subversion 是一个自由/开源的版本控制系统。也就是说,在Subversion管理下,文件和目录可以超越时空。Subversion将文件存放在中心版本库里。这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。于是我们就可以籍此将数据回复到以前的版本,并可以查看数据的更改细节。正因为如此,许多人将版本控制系统当作一种神奇的“时间机器”。
Subversion 的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作。从某种程度上来说,允许用户在各自的空间里修改和管理同一组数据可以促进团队协作。因为修改不再是单线进行(单线进行也就是必须一个一个进行),开发进度会进展迅速。此外,由于所有的工作都已版本化,也就不必担心由于错误的更改而影响软件质量—如果出现不正确的更改,只要撤销那一次更改操作即可。
官方下载:

    * 服务器和程序下载 : http://subversion.tigris.org/getting.html#binary-packages
    * Windows常用客户端TortoiseSVN:http://tortoisesvn.net/downloads
    * AnkhSVN(Visual Studio插件):http://ankhsvn.open.collab.net/
    * Subclipse(Eclipse插件):http://subclipse.tigris.org/
    * SCPlugin(Mac OS x客户端):http://scplugin.tigris.org/

准备工作:
svn服务器端:svn-win32-1.6.6.zip
svn客户端: TortoiseSVN-1.6.7.18415-win32-svn-1.6.9.msi
             LanguagePack_1.6.7.18415-win32-zh_CN.msi(中文汉化包)
配置开始:
我下的服务器端是zip的,所以只要解压缩就好了(如果是exe,msi只类的,总之需要安装的,建议安装之前备份一下apache的配置文件,因为有些版本会自动寻找apache的配置文件并进行配置,成功了当然好,不成功就难过了),解压到C:\svn下,执行①或②(建议在修改httpd.conf文件之前备份一下)
①将里面bin下面mod_authz_svn.so和mod_dav_svn.so拷到apache安装目录(我的是C:\Apache2.2\)下的modules目录下,然后修改apache的配置文件httpd.conf,增加下面两行内容:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
②不拷贝mod_authz_svn.so和mod_dav_svn.so,直接修改httpd.conf,增加下面两行内容:
LoadModule dav_svn_module "D:\Program Files\svn\bin\mod_dav_svn.so"
LoadModule authz_svn_module "D:\Program Files\svn\bin\mod_authz_svn.so"
在httpd.conf中找到#LoadModule dav_module modules/mod_dav.so和#LoadModule dav_fs_module modules/mod_dav_fs.so,将其前面的#去掉。
在httpd.conf末尾添加下面的内容:
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath E:\Home\SVNROOT
AuthType Basic
AuthName "UenuCom Corp."
AuthUserFile "C:\Apache2.2\bin\passwd"
#AuthzSVNAccessFile "C:\Apache2.2\bin\svnaccess.conf"
Require valid-user
</Location>
注:
SVNParentPath表示SVN版本库的根目录,设置到自己想要的地方并确保该目录存在
AuthName我还没弄清楚是干嘛的
AuthUserFile这里是指定设置SVN的用户的文件所在,可以写绝对路径也可以写相对路径
AuthzSVNAccessFile是指定权限管理的文件所在,我还没太弄明白,所以注释掉了
将C:\svn\bin下的所有DLL文件全部拷贝到C:\Apache2.2\bin下,如有重名文件全部覆盖(建议覆盖之前备份一下)
命令行输入cmd,执行
进入apache的安装目录下的bin目录
C:\Apache2.2\bin>htpasswd -cm passwd thm
New password: ****
Re-type new password: ****
Adding password for user thm
这里是用apache的htpasswd创建一个储存用户的文件并新建一个thm用户(-c 表示创建文件,-m表示对密码用md5加密,创建第二个用户时不用c参数),这里创建的文件名为passwd,应跟httpd.conf中 AuthUserFile设置的文件名一致
自然有了用户后, 就要进行一些限制, 比如谁可以访问, 谁可以提交代码等权限管理.

这时我们又要做一件事情. 用记事本编辑如下内容:



[groups]
AdminGroup = thm, test
CodeGroup = thm,tianhuimin,uenucom
GuestGroup = guest

[/]
* = r
@AdminGroup = rw
@GuestGroup = r

[test:/]
* = r
@AdminGroup = rw
@CodeGroup = rw


另存为到E:\svn\Access.conf 文件上(文件名随便取, 不一定非要叫access.conf的).这样tianjp所在的AdminGroup组在test版本库下是具有rw权限的了. 相信上面的配置很简单, 大家一看就明白.

别忘了, 把配置文件里的这一行: #AuthzSVNAccessFile "E:\svn\Access.conf" 注释去掉

这样, 最后就变成了:

<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath E:\Home\SVNROOT
AuthType Basic
AuthName "UenuCom Corp."
AuthUserFile "C:\Apache2.2\bin\passwd"
AuthzSVNAccessFile "C:\Apache2.2\bin\svnaccess.conf"
Require valid-user
</Location>

安装客户端软件TortoiseSVN-1.6.7.18415-win32-svn-1.6.9.msi
默认安装即可

进入svn的安装目录下的bin目录
执行下面命令
C:\svn\bin>svnadmin create E:/Home/SVNROOT/test
或在E:/Home/SVNROOT下新建test文件夹,右键TortoiseSVN->Create repository here
便建立了test版本库

到此SVN配置结束了,试用一下

随便一个文件夹右键,TortoiseSVN->import
弹出对话框,url输入http://localhost/svn/test,OK
便将文件夹导入版本库了

 

下面的perl配置其实和Bugzilla是类似的···可以相应的参考下··

3. 配置邮件通知
下载所需要的软件包
--在这里下载http://downloads.activestate.com ... in32-x86-267479.msi到D盘根目录下。
--下载http://download.microsoft.com/do ... 5/en-us/nmake15.exe到D盘根目录下。
--下载http://search.cpan.org/CPAN/auth ... Build-0.2805.tar.gz到D盘根目录下,将Module-Build-0.2805.tar.gz解压到D盘。
--下载http://search.cpan.org/CPAN/auth ... en-SASL-2.10.tar.gz到D盘根目录下,将Authen-SASL-2.10.tar.gz解压到D盘。
--下载http://search.cpan.org/CPAN/auth ... TP_auth-0.08.tar.gz到D盘根目录下,将Net-SMTP_auth-0.08.tar.gz解压到D盘。
--下载http://search.cpan.org/CPAN/auth ... -Notify-2.64.tar.gz到D盘根目录下,将SVN-Notify-2.64.tar.gz解压到D盘。

开始安装Perl以及模块
--安装Active Perl,一路默认安装,默认路径为C:\Perl
--测试perl是否正常工作(这步很关键)
   打开CMD命令行界面,"开始" -> "运行" -> "cmd" -> "回车"
C:\Documents and Settings\windy> perl //如果没有报错,说明已经正常工作,因为安装perl时,安装程序会自动设置好环境perl(如果在系统环境变量中没有自动添加,需手动添加perl变量环境),具体做法是:
   "回到桌面" -> "鼠标右键我的电脑" -> "属性" -> "高级" -> "环境变量" -> "系统变量中Path最前面中添加C:\Perl\bin\;" ->"完成"。 //测试,如果报错,请重新启动电脑后进行测试
--将nmake15.exe改名为nmake.exe后拷贝到c:\windows\system32目录下。
--测试nmake是否是否正常工作(这步很关键)
   打开CMD命令行界面,"开始" -> "运行" -> "cmd" -> "回车"
C:\Documents and Settings\windy> nmake
   Microsoft (R) Program Maintenance Utility Version 1.50
   Copyright (c) Microsoft Corp 1988-94. All rights reserved. //说明nmake已经正常工作
--安装Module-Build模块
   打开CMD命令行界面,"开始" -> "运行" -> "cmd" -> "回车"
   C:\Documents and Settings\windy> d:
   D:\> cd Module-Build-0.2805
   D:\Module-Build-0.2805> perl Build.PL //收集系统环境变量
   D:\Module-Build-0.2805> Build //进行编译
   D:\Module-Build-0.2805> Build test //测试
   D:\Module-Build-0.2805> Build install //编译后安装 
--安装Perl模块Authen::SASL,进入Authen-SASL-2.10目录,首先开打Makefile.PL
   打开CMD命令行界面,"开始" -> "运行" -> "cmd" -> "回车"
   C:\Documents and Settings\windy> d:
   D:\> cd Authen-SASL-2.10
   D:\Authen-SASL-2.10> perl Makefile.PL //收集系统环境变量
   出现选择安装提示,y和n先后安装一次
   D:\Authen-SASL-2.10> nmake //进行编译
   D:\Authen-SASL-2.10> nmake test   //进行测试
   D:\Authen-SASL-2.10> nmake install //编译后安装
--安装Perl模块Net::SMTP_auth
   打开CMD命令行界面,"开始" -> "运行" -> "cmd" -> "回车"
   C:\Documents and Settings\windy> d:
   D:\> cd Net-SMTP_auth-0.08
   D:\Net-SMTP_auth-0.08> perl Makefile.PL //收集系统环境变量
   D:\Net-SMTP_auth-0.08> nmake //进行编译
   D:\Net-SMTP_auth-0.08> nmake test //测试
   D:\Net-SMTP_auth-0.08> nmake install //编译后安装
--安装Perl模块SVN::Notify
   打开CMD命令行界面,"开始" -> "运行" -> "cmd" -> "回车"
   C:\Documents and Settings\windy> d:
   D:\> cd SVN-Notify-2.64
   D:\SVN-Notify-2.64> perl Build.PL //收集系统环境变量
   D:\SVN-Notify-2.64> Build //进行编译
   D:\SVN-Notify-2.64> Build test //测试
   D:\SVN-Notify-2.64> Build installl //编译后安装 
--安装完毕。

设置邮件通知
--拷贝post-commit.tmpl为post-commit.bat
--删除末尾参数,增加下面参数:
set REPOS=%1
set REV=%2
SET PATH=C:\PERL\BIN;
SET S=Windows_NT
SET SystemRoot=C:\WINDOWS
svnnotify --repos-path %REPOS% -r %REV% --to windy@xxx.com --smtp smtp.xxx.com -H HTML::ColorDiff -d --subject-prefix [Windy SVN]
//--to windy@xxx.com为要通知的邮件地址,我们一般会做个邮件组,这个组内包含了这个项目的所有人,--smtp mail.xxx.com为你的内部邮件服务器地址,必须使用域名,要内部DNS能够解析到,可能需要在内部DNS服务器上手动添加主机记录, [Windy SVN]必须有SVN字段,否则将收不到邮件,注重格式,此脚本有bugzilla和JIRA系统进行整合的参数。

关于详细参数解释:
svnnotify 邮件通知的命令
--repos-path %REPOS% 后跟仓库的路径
-r %REV% 后跟版本号
--to 后跟邮件地址
--smtp 后跟邮件服务器的地址
--H HTML::ColorDiff 用颜色区分开修改过的代码
--subject-prefix [Windy SVN] 邮件标题前缀,可以把Windy自段定义成自已项目的名称

完成所有设置。



TAG: svn SVN

 

评分:0

我来说两句

Open Toolbar