禅道V3.0集成带中文目录的svn后出现的bug
环境:新装禅道源码3.0版本,svn直接采用redmine原来的库,内带有部分的中文目录。
centos5.6 / amp / svn, version 1.7.1 (r1186859) compiled Feb 21 2012, 11:31:30
现象:提交svn后,pms信息提取正常。其中点超链接[diff]弹出的代码窗有输出,但点超链接[view]弹出的代码窗无任何输出。
初步分析: 直接单独从 /module/svn/model.php 中的
$cmd = $this->client . " diff --old=$url@$oldRevision--new=$url@$revision"; 和
$cmd = $this->client . " cat $url@$revision"; 中分别提取 $cmd 值到超级终端运行均正常。
但通过禅道超链接中的[diff]有输出,而[view]却无输出。不得其解,请指点?

另一个小bug:
ztPMS3.0在保存svn提交信息时,其url采用safe64Encode()进行编码,再保存到mysql里,如果此时保存的编码串中含有'+'符号,在mysql回读时将变成' '空格号,这会导致url的safe64Decode()解码时乱码错误,导致url链接出错!
解决方法: 将 safe64Encode() / safe64Decode() 的编解码函数替换成 urlEncode() / urlDecode() 编解码函数。其他版本同样。
其实不仅仅是中文路径的问题,一个不留神,代码浏览中的中文注解照样会出乱码,所以中文问题是避不开的。
不过在平时的应用管理中规范统一了提交编码的格式,也就一样用了。
之所以回避不了,是因为有些代码的确需要用到多国文字串。汗啊!原则上只好能不用就不用了。呵呵





精品资料包
1V1产品演示
免费试用增强功能
专属顾问答疑支持


