使用Arcanist执行arc land报错:Conduit API方法harbormaster.buildable.search不存在
这个报错的核心原因是本地Arcanist版本与Phabricator服务端版本不兼容:你本地使用的较新Arcanist调用了harbormaster.buildable.search这个Conduit API,但部署的Phabricator服务端版本较低,未提供该API接口。
解决方案
- 临时规避方案:执行
arc land时添加跳过构建检查的参数即可完成合入,命令如下:
注意:该操作会跳过服务端构建结果校验,合入前请自行确认代码提交符合合入要求。arc land --skip-builds - 版本适配方案:将本地Arcanist和依赖的libphutil回退到与Phabricator服务端匹配的版本即可永久解决兼容性问题,操作步骤:
- 向团队的Phabricator管理员确认服务端对应的Arcanist版本commit哈希值
- 分别进入本地
arcanist、libphutil的存放目录,执行版本回退命令:git checkout <对应版本的commit哈希> - 重新加载Arcanist的环境变量配置后即可正常使用
- 服务端升级方案:如果你有Phabricator服务端操作权限,可将服务端升级到支持
harbormaster.buildable.searchAPI的新版本,即可匹配最新版Arcanist的调用要求。
注意事项
日常使用不要随意将本地Arcanist切换到master分支的最新提交,除非确认Phabricator服务端已经同步完成版本升级,避免出现API不兼容类报错。
内容的提问来源于stack exchange,提问作者patrick_star
相关产品推荐
相关产品推荐

