问题:
执行arc diff --trace后,碰到错误。
No unit test engine is configured for this project.
>>> [10] (+11,571) <exec> $ svn diff --depth empty --diff-cmd /Users/mac-mini2/Repository/phabricator/arcanist/scripts/repository/binary_safe_diff.sh -x -U32767 php/AuditLog.php
>>> [11] (+11,572) <exec> $ svn info /Users/mac-mini2/Repository/phabricator/test/phabrictor/php/AuditLog.php@
<<< [11] (+11,586) <exec> 13,890 us
<<< [10] (+11,592) <exec> 20,548 us
>>> [12] (+11,593) <exec> $ svn info .
<<< [12] (+11,608) <exec> 14,111 us
[2021-03-08 06:35:01] EXCEPTION: (RuntimeException) Undefined index: Repository UUID at [<arcanist>/src/error/PhutilErrorHandler.php:252]
arcanist(head=master, ref.master=2d6452acb5f1)
#0 PhutilErrorHandler::handleError(integer, string, string, integer, array) called at [<arcanist>/src/repository/api/ArcanistSubversionAPI.php:606]
#1 ArcanistSubversionAPI::getRepositoryUUID() called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:2225]
#2 ArcanistDiffWorkflow::buildDiffSpecification() called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:382]
#3 ArcanistDiffWorkflow::run() called at [<arcanist>/scripts/arcanist.php:419]
查看ArcanistSubversionAPI.php:606的代码:
public function getRepositoryUUID() {
$info = $this->getSVNInfo('/');
return $info['Repository UUID'];
}
通过trace信息,可以知道Repository UUID是从svn info .这个命令的结果得来的,由于svn info .的结果是中文的版本库 UUID,所以获取不到,报错。
路径: .
URL: https://lcut.googlecode.com/svn/trunk
版本库根: https://lcut.googlecode.com/svn
版本库 UUID: 22405a7c-d843-be82-cc3b-46f1d7cb9705
版本: 57
节点种类: 目录
调度: 正常
最后修改的作者: bigwhite.cn@gmail.com
最后修改的版本: 57
所以解决方法是让svn info .显示英文结果。解决方法:
export LANGUAGE=en_US.en
Path: .
URL: https://lcut.googlecode.com/svn/trunk
Repository Root: https://lcut.googlecode.com/svn
Repository UUID: 22405a7c-d843-be82-cc3b-46f1d7cb9705
Revision: 57
Node Kind: directory
Schedule: normal
Last Changed Author: bigwhite.cn@gmail.com
Last Changed Rev: 57