--diff y 是表示在邮件中加入diff信息,这个当然是要的
后面跟的邮件地址,是接收邮件的地址,有人说可以在后面写上N个地址,用空格分开就行,事实上我测试的时候,这种方式根本就收不到邮件了,时间紧迫,不能详细测试。最后不得不在邮件服务器上做了一个组邮件地址。
关于中文问题,通过在commit-email.pl中更改字符集,基本上可以很完美的解决diff信息中的中文问题。
但是对于log信息中的中文,至今尚未找到合适的解决办法。
这个问题的关键应该是在于,svn客户端在提交更新的时候,输入的log信息,使用的是非ascii编码(应该是unicode) ,commit-email.pl(还不缺认问题是不是出在commit-email.pl还是出在svn本身)在处理非ascii编码时,将其转换成了诸如 ?\230?\181?\139?\232?\175?\149?\228?\186?\140 这样的不可读的数字形式。
在互联网上找到一篇文章,是06年写的,提到了一种解决这个的办法,不过我测试下来没有成功,还是贴出来吧,不定谁的就可以成功了
my @difflines; (行487) 的前面加上:
for (my $i=0; $i<@body; ++$i){
my @rsa = split( /\?\\/, $body[$i] );
$body[$i] = "";
foreach my $val (@rsa) {
$val =~ /(^[0-9]{3})(.*)/;
if(defined $1 and $1 gt 0){
#print "\n[".$1 . "," . $2."]";
$body[$i] .= chr($1) . $2;
}
else{
$body[$i] .= $val;
}
}
}
把之前 push 到 @body 变量的所有内容重新进行处理,发现 ?\ 后面跟三个数字就替换为相应的字符。
