首页 > 运营 > 帮助中心 > 正文

phabrocator代码路径不能识别的解决方案

2020-07-28 15:59:21
字体:
来源:转载
供稿:网友
 一、代码路径中有中文时会提示提交失败的错误提示:
 
 提示内容表示svn的节点错误,找不到文件。可以合理猜测Phabricator在生成文件差异的过程中将差异内容文本格式识别错误,之后在检查的过程中提示此错误。
 
 有了以上的猜测,我们可以查看代码中的获取文件差异的代码部分,将文本格式转化为Phabricator能识别的格式即可。
 
 二、分析Phabricator的调用方式:
 
 三、继续分析generateChanges()方法,找到了一下语句:
 
 四、分析为对不同代码管理工具做了不同处理,如果是SVN工具下,则使用上述对于方法处理。针对本问题2的路径问题,需要分析generateAffectedPaths()方法,然后发现调用了$paths=$repository_api->getSVNStatus($externals=true);方法来获取路径,具体的调用方式如下:
 
 五、剩下的处理就简单了,需要在获取xml格式文本后件将文本转化为GBK格式,但是这样还不够,因为Phabricator的服务器并不难识别GBK格式,需要在发送数据前将数据从GBK转化为UTF-8,具体修改如下:
 
  1、ArcnistSubversionApi.php.getSVNStatus()方法修改。
 
  2、ArcdiffWorkflow.php.run()方法修改。
 
  3、新增了格式转换方法。
 
  4、作出以上修改后,果然路径中有中文也不会出现问题。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表