The `arc diff` command does not work correctly in Arcanist when the `LANGUAGE` environment variable is set to stuff like `en_US:it_IT`.
When it happens, you may get this exception:
```
Undefined array key "Repository UUID"
```
Example using `--trace` to show full stack trace and `--only` to run a test that has little impact on already-existing revisions:
```
$ export LANGUAGE=en_US:it_IT
$ arc diff --only --trace
arc diff --only --trace
ARGV /home/boz/.local/bin/arc diff --only --trace
>>> [1] (+0) <exec> $ php -f /home/boz/repos/arcanist/scripts/arcanist.php -- diff --only --trace
ARGV /home/boz/repos/arcanist/scripts/arcanist.php diff --only --trace
LOAD Loaded "arcanist" from "/home/boz/repos/arcanist/src".
Config: Reading user configuration file "/home/boz/.arcrc"...
Config: Did not find system configuration at "/etc/arcconfig".
Working Copy: Reading .arcconfig from "/home/boz/svn_example_repo/.arcconfig".
Working Copy: Path "/home/boz/svn_example_repo" is part of `svn` working copy "/home/boz/svn_example_repo".
Working Copy: Project root is at "/home/boz/svn_example_repo".
Config: Did not find local configuration at "/home/boz/svn_example_repo/.svn/arc/config".
>>> [1] (+0) <http> https://phorge.example.com/api/user.whoami
<<< [1] (+166) <http> 166,711 us
>>> [2] (+170) <exec> $ svn --xml status
<<< [2] (+210) <exec> 39,841 us
>>> [3] (+1,862) <event> diff.didCollectChanges <listeners = 0>
<<< [3] (+1,862) <event> 123 us
>>> [4] (+1,862) <event> diff.didBuildMessage <listeners = 0>
<<< [4] (+1,862) <event> 23 us
Linting...
No lint engine configured for this project.
Running unit tests...
No unit test engine is configured for this project.
[2024-06-21 14:37:20] ERROR 8192: strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [/home/boz/repos/arcanist/src/repository/api/ArcanistSubversionAPI.php:243]
arcanist(head=master, ref.master=f7fcf31c7e23)
#0 ArcanistSubversionAPI::getBranchName() called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:2234]
#1 ArcanistDiffWorkflow::buildDiffSpecification() called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:380]
#2 ArcanistDiffWorkflow::run() called at [<arcanist>/scripts/arcanist.php:427]
[2024-06-21 14:37:20] EXCEPTION: (RuntimeException) Undefined array key "Repository UUID" at [<arcanist>/src/error/PhutilErrorHandler.php:273]
arcanist(head=master, ref.master=f7fcf31c7e23)
#0 PhutilErrorHandler::handleError(integer, string, string, integer) called at [<arcanist>/src/repository/api/ArcanistSubversionAPI.php:606]
#1 ArcanistSubversionAPI::getRepositoryUUID() called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:2235]
#2 ArcanistDiffWorkflow::buildDiffSpecification() called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:380]
#3 ArcanistDiffWorkflow::run() called at [<arcanist>/scripts/arcanist.php:427]
<<< [1] (+1,979) <exec> 1,979,677 us
```
This probably happens because `svn info` is affected by the `LANGUAGE` / `LC_MESSAGES` (and more) environment variable. So, defusing localization fixes the issue.
NOTE: The error message `strlen(): Passing null to parameter #1 ($string) of type string is deprecated` from `ArcanistSubversionAPI.php:243` is very probably not the root cause, but just a consequence.
Look the localized result of `svn info`:
```
$ export LC_TIME=it_IT.UTF-8
$ export LANGUAGE=en_US:it_IT
$ svn info
Percorso: .
Working Copy Root Path: /home/boz/svn_example_repo
URL: svn+ssh://phab@phorge.example.com/source/svn_example_repo/trunk
Relative URL: ^/trunk
Repository: svn+ssh://phab@phorge.example.com/source/svn_example_repo
UUID del Repository: 384bb524-2d96-4f3e-9ad6-60c0b842faff
Revisione: 1922
Tipo di nodo: directory
Azione: normale
Autore dell'ultima modifica: valerio.bozzolan
Revisione dell'ultima modifica: 1922
Data dell'ultima modifica: 2024-06-10 15:06:40 +0200(lun, 10 giu 2024)
```
Expected output to be able to parse it, resetting `LC_ALL=C`:
```
$ export LC_TIME=it_IT.UTF-8
$ export LANGUAGE=en_US:it_IT
$ export LC_ALL=C
$ svn info
Path: .
Working Copy Root Path: /home/boz/er/fe_data_imprt
URL: svn+ssh://phab@phorge.example.com/source/svn_example_repo/trunk
Relative URL: ^/trunk
Repository Root: svn+ssh://phab@phorge.example.com/source/svn_example_repo
Repository UUID: 384bb524-2d96-4f3e-9ad6-60c0b842f5ff
Revision: 1922
Node Kind: directory
Schedule: normal
Last Changed Author: valerio.bozzolan
Last Changed Rev: 1922
Last Changed Date: 2024-06-10 15:06:40 +0200 (Mon, 10 Jun 2024)
```
Counter example, see the wrong Italian dates (`10 giu`) resetting just `LANGUAGE`:
```counterexample
$ export LC_TIME=it_IT.UTF-8
$ export LANGUAGE=C
$ svn info
Path: .
Working Copy Root Path: /home/boz/svn_example_repo
URL: svn+ssh://phab@phorge.example.com/source/svn_example_repo/trunk
Relative URL: ^/trunk
Repository Root: svn+ssh://phab@phorge.example.com/source/svn_example_repo
Repository UUID: 384bb524-2d96-4f3e-9ad6-60c0b842faff
Revision: 1922
Node Kind: directory
Schedule: normal
Last Changed Author: valerio.bozzolan
Last Changed Rev: 1922
Last Changed Date: 2024-06-10 15:06:40 +0200 (lun, 10 giu 2024)
```