51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4679|回复: 1
打印 上一主题 下一主题

windows下SVN邮件使用,SVN系统邮件乱码及信息错误 求9

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-8-31 13:49:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
windows 下SVN邮件使用及,SVN邮件乱码及信息错误

使用SVN1.40

装好后使用如下方法设置邮件发送功能:
Subversion是通过Hooks 来控制每次Transaction的行为, 有Pre-Commit, Post-Commit 等.一般情况下我们希望在提交代码后,Subversion可以自动发送邮件给组里的每个成员,  这种情况下我们可以通过post-commit这个脚本来完成. 这些脚本存放在你的Repository的Hooks目录下, 一般情况下, 是以.tmpl后缀结尾, 如果是Unix平台, 需要改成.sh, Windows 平台改成.bat或.cmd .



当一个Transaction成功完成后, 就会调用post-commit.bat 这个脚本. 下面的例子给出了如何在Subversion提交代码后自动发送邮件的例子:



set REPOS=%1

set REV=%2

commit-email.pl %REPOS% %REV% -l C:Tempsvnlookcommit-email.log --from [email=your-email@server.com]your-email@server.com[/email] -s "[project-dev] Commit"



commit-email-win.pl 是用来发送邮件的Perl 脚本, 所以你的系统需要安装Perl.  %REPOS% 参数是你的Repository的目录  %REV% 参数是Commit的Revision号  --from 表面邮件发送人的地址 -l 参数是日志的目录, 用来记录每次邮件发送的细节 -s 参数是邮件的标题.

下面给出commit-email-win.pl, 您可以将他放在svn/bin 目录下, 并保证svn/bin在系统的PATH环境变量里面. 或者你可以在post-commit.bat中使用绝对路径调用commit-email-win.pl



请根据你的系统配置, 正确改写下面几处变量:

$sendmail  #perl.exe所在路径

$svnlook   #svnlook.exe所在路径

$emailsFile  #存放收件人地址的文件

$tmp_dir    #临时目录

$mailserver  # SMTP的域名或者IP



找到$mailer->auth( ) , 正确填写你的邮件地址的帐号, 和密码 (SMTP 验证用), 并保证你的Perl 已经安装Authen::SASL



至此,可以直接运行commit-email-win.pl 脚本,来检查脚本是否正常运行,此时mailerDebugLevel可以设置为1.



> commit-email.pl d:/svn_repository 2

如果运行成功, 你就可以通过Commit再次检查运行是否正常



通常在Windows下使用安装包安装Perl后是不带Authe::SASL模块得。可以使用ppm连接active perl 的网站安装这一模块,如果由于某些限制不能使用ppm的网络功能,则可以下载相关源码包后编译安装。



按上面的方法,邮件是可以发了,但中文邮件内容乱码,且发送的信息有问题.

求助问题:


仓库目录为:d:/svn_repository

命令行下使用: commit-email.pl d:/svn_repository 2  调试,发送邮件格式正确,但中文内容乱码;

使用POST-COMMIT调用时,发送内容却是:
Author: K:\Program Files\Subversion\bin\commit-email.pl: `"K:\Program Files\Subversion\bin\svnlook.exe" info N:\\svntest\\projecta -r 16' failed with this output:
Date:
New Revision: 16

Modified:
   
Log:

K:\Program Files\Subversion\bin\commit-email.pl: `"K:\Program Files\Subversion\bin\svnlook.exe" diff N:\\svntest\\projecta -r 16' failed with this output:


我的POST-COMMIT:

set REPOS="d:\\svn_repository\\"
set REV="$2"

commit-email.pl %REPOS% %REV% --from test@google.com -l "C:\\Tempsvnlookcommit-email.log" -s "svn TEST"


PS: 将POST-COMMIT改为如下:

set REPOS="d:\\svn_repository\\"
set REV="$2"

commit-email.pl %REPOS% %REV%
#--from test@google.com -l "C:\\Tempsvnlookcommit-email.log" -s "svn TEST"


发的信息还是格式不对;

这样难道和调试调用有啥区别?
(commit-email.pl   d:\svn_repository  3)

不懂PERL,语法如此奇怪,望达人指点指点;

要是空把您正在用的 POST-COMMIT贴出来大家参考参考(主要是我,哈哈) ,走过路过的帮下哈,谢谢啊


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2007-9-1 14:40:45 | 只看该作者
第一个问题解决了,中文邮件乱码,怎么解决啊
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-9-21 11:27 , Processed in 0.074777 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表