当前位置 主页 > 服务器问题 > win服务器问题汇总 >

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

    栏目:win服务器问题汇总 时间:2018-08-29 16:49

     一、代码路径中有中文时会提示提交失败的错误提示:
     
     提示内容表示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、作出以上修改后,果然路径中有中文也不会出现问题。