修復svn hook導致的字符集錯誤

卡卡西村長發表於2017-07-21

修改pre-commit鉤子,如果返回中文資訊,可能會報如下錯誤:

Error output could not be translated from the native locale to UTF-8.

網上流傳的解決方案,是增加以下程式碼:
export LANG=zh_CN.UTF-8

該方法實測無效!

其實這是svn的一個bug,存在了很長時間,到svn1.8時才徹底修復,修復方案是,升級到svn1.8或更高版本,然後修改apache mod_dav_svn外掛的配置。

具體步驟如下:

第一步
修改centos repo來源
vim /etc/yum.repos.d/wandisco-svn.repo
輸入
[WandiscoSVN]
name=Wandisco SVN Repo
baseurl=http://opensource.wandisco.com/centos/$releasever/svn-1.8/RPMS/$basearch/
enabled=1
gpgcheck=0
儲存

第二步
yum install subversion
yum install mod_dav_svn

如果報版本衝突,透過yum remove把老版本的subversion刪除。

安裝後確認版本號
svn --version

第三步
vim /etc/httpd/conf/httpd.conf
增加
<IfModule mod_dav_fs.c>
# Location of the WebDAV lock database.
DAVLockDB /var/lib/dav/lockdb
SVNUseUTF8 On
</IfModule>
儲存
service httpd restart


問題徹底解決。

 

相關文章