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

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

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

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

    第一種方式 通過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

    主站蜘蛛池模板: 亚洲国产欧美国产综合一区| 99亚洲精品卡2卡三卡4卡2卡| 在线视频精品免费| 国产精品亚洲综合久久| 免费一级毛片免费播放| 免费无码av片在线观看| 亚洲一级毛片免费看| 国产一级大片免费看| 国产午夜无码精品免费看动漫 | 91亚洲国产在人线播放午夜| 国产精品1024永久免费视频| 羞羞网站在线免费观看| 亚洲综合一区二区精品导航| 日韩免费在线观看| 99久久免费精品视频| 美女黄频a美女大全免费皮| 亚洲AV永久无码区成人网站 | 色欲色欲天天天www亚洲伊| 18禁成年无码免费网站无遮挡| 免费精品久久久久久中文字幕| 亚洲av无码成h人动漫无遮挡| 影音先锋在线免费观看| 免费看一区二区三区四区| 亚洲色欲色欱wwW在线| 国产成A人亚洲精V品无码| 免费看美女让人桶尿口| 久章草在线精品视频免费观看| 亚洲爆乳无码专区www| 久久亚洲sm情趣捆绑调教| 四虎影院永久免费观看| 1000部禁片黄的免费看| 亚洲免费日韩无码系列| 亚洲久热无码av中文字幕| 亚洲大片在线观看| 亚洲av无码国产精品色在线看不卡 | 亚洲一级免费毛片| 中国一级全黄的免费观看| 亚洲AV成人一区二区三区观看 | 久久成人18免费网站| 亚洲精品伦理熟女国产一区二区 | 亚洲一区精品伊人久久伊人|