Subversion UTF-8 commit log

用 commit-email.pl 或是 的人,在 commit 時裡輸入 UTF-8 commit log (這邊指非純英文,在我自己的環境裡是中文),寄出的信會產生亂碼。

在網路上搜尋或是自己追蹤後,會發現是 svnlook 輸出的問題。網路上很多方法都是改 commit-email.pl,修正 svnlook 的輸出結果,但這個方法我不太喜歡。我覺得 svnlook 應該有設定可以調整,可以讓他輸出正確的 commit log,第一次跑 svnlook 就發現在我的 console 可以正確顯示,測過幾次後發現是因為 svnlook 依照 locale(1) 設定而產生亂碼。

知道問題後就很簡單了,由於 svnlook 會看 locale(1) 的設定,所以在 post-commit 裡先用 export LANG="en_US.UTF-8" (sh/bash) 或是 setenv LANG en_US.UTF-8 (csh/tcsh) 將 locale 設為 UTF-8,再使用 commit-email.pl 送信就沒問題了。

2 thoughts on “Subversion UTF-8 commit log”

  1. 直接用 subversion + trac
    用 svn notify 有什麼特別的理由嗎??

    *nctu.edu.tw 回應 blog.gslin.org doesn't exists :|

  2. 我們要收 commit mail,所以要處理。

    另外 blog.gslin.org 不存在的問題,我找不到問題,所以只能暫時放著不管。

Leave a Reply

Your email address will not be published. Required fields are marked *