首页 > 代码库 > 修复svn hook导致的字符集错误

修复svn hook导致的字符集错误

修改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


问题彻底解决。

 

修复svn hook导致的字符集错误