<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    互聯網上有很多相關的文章,但是說明的不夠明了,我參考這些文章來配置的時候,走了不少彎路?,F在將這兩種方式整理一下。

    第一種方式 通過svnnotify來發送郵件

    /usr/bin/svnnotify --repos-path "$1" --revision "$2" --to real@admin.net --from real@admin99.net --handler "HTML::ColorDiff"  --with-diff --smtp mail.admin99.net --charset zh_CN:GB2312  -g zh_CN --svnlook /usr/local/subversion/bin/svnlook --subject-prefix '[SVN更新]'

    svnnotify有很多參數,可以通過svnnotify --help 或者man svnnotify 查看

    好多文章中在介紹這種方式的時候,沒有加上svnlook的絕對路徑,我實在是很納悶,可能是他們的subversiong在安裝的時候沒有加上 --prefix=/yourpath 參數,把subversion安裝在了默認路徑,我的subversion是安裝在/usr/local/subversion之下的,svnnotify在默認的/usr/bin下找不到svnlook,所以,在郵件通知中無法出現log信息,diff信息等等。加上這個參數之后,問題解決。

    還有更搞笑的是,很多關于這個的文章把 -l 參數當作svn 記錄日志文件的參數,寒~~ -_-!! 可能是把svnnotify和commit-email.pl搞混了,在svnnotify中,這個參數是 --language 。

    這種方式還有另外一個問題,中文轉碼的問題,經過N次嘗試之后,log信息中的中文,diff信息中的中文仍然顯示的是亂碼,最后因為時間緊迫,不得不先放棄這種方式。

    第二種方式 通過commit-email.pl 來發送郵件

    /usr/local/subversion/bin/commit-email.pl "$1" "$2" --from real@admin99.net -h admin99.net  -s "[SVN 更新]" --diff y svnhejia@51hejia.com

    默認情況下,在subversion的bin目錄下,沒有commit-email.pl這個文件,是我從src中copy過來的。

    關于commit-email.pl所能用的參數,可以通過直接執行/usr/local/subversion/bin/commit-email.pl 來查看,當然這個時候是執行不了了,提示錯誤是參數太少,然后給你列出來一些參數。參數不多。

    --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 變量的所有內容重新進行處理,發現 ?\ 后面跟三個數字就替換為相應的字符。

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    posts - 27, comments - 15, trackbacks - 0, articles - 1

    Copyright © E.ven

    主站蜘蛛池模板: 亚洲欧洲免费无码| 女人18毛片免费观看| 国产亚洲精品美女2020久久| 亚洲AV无码乱码国产麻豆穿越 | 亚洲国产香蕉人人爽成AV片久久 | 亚洲成人动漫在线| 亚洲成A人片在线观看无码3D| 中文字幕av无码无卡免费| 七色永久性tv网站免费看| 一本到卡二卡三卡免费高| 亚洲国产精品无码第一区二区三区 | 亚洲AV伊人久久青青草原| 最近高清国语中文在线观看免费| 久久精品国产影库免费看| 一级毛片a免费播放王色| 国产成人亚洲综合无| 亚洲精品永久在线观看| 亚洲va在线va天堂va手机| 亚洲综合在线成人一区| 亚洲国产精品久久| 亚洲va在线va天堂va888www| 国产亚洲精品国产| 亚洲深深色噜噜狠狠爱网站| AV在线亚洲男人的天堂| 亚洲男人av香蕉爽爽爽爽| 亚洲乱码中文字幕手机在线| 亚洲A∨午夜成人片精品网站| 国产免费观看a大片的网站| 免费的一级片网站| 免费一看一级毛片人| 免费国产成人午夜电影| 亚洲AV无码一区二区三区在线观看| 无码欧精品亚洲日韩一区夜夜嗨| 四虎影在线永久免费四虎地址8848aa| 狠狠久久永久免费观看| 国产乱子伦片免费观看中字| va亚洲va日韩不卡在线观看| 亚洲中文字幕成人在线| 亚洲精品无码午夜福利中文字幕 | 老妇激情毛片免费| 一级毛片免费一级直接观看|