在我前面的文章《SVN提交强制写入注释及相关扩展阅读》中,提到了提交时强制写入注释的方法

在使用Apache进行SVN管理,而不是使用svnserve的时候,在钩子hooks中填写的中文脚本有可能无法正确显示,会提示

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

网上大多数的文章给出的解决方案是:

修改钩子hooks的编码

export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8

或者修改Apache的编码

AddDefaultCharset UTF-8

都不能解决问题,因为这些解决方案都是针对svnserve的。


正确的姿势

问题出现的原因是因为subversion的版本太低

比如centos6自己的源带的subversion版本是1.6的

升级的方法

cat > /etc/yum.repos.d/wandisco-svn.repo < 
  

在wandisco网站找到对应的系统版本和最新的subversion版本并填写到baseurl里


修改http.conf添加UTF8支持,并重启httpd


    # Location of the WebDAV lock database.
    DAVLockDB /var/lib/dav/lockdb
    SVNUseUTF8 On

问题就解决了。