Page MenuHomePhabricator

D9263.id22000.diff
No OneTemporary

D9263.id22000.diff

diff --git a/scripts/arcanist.php b/scripts/arcanist.php
--- a/scripts/arcanist.php
+++ b/scripts/arcanist.php
@@ -80,6 +80,9 @@
}
$configuration_manager = new ArcanistConfigurationManager();
+ if ($custom_arcrc) {
+ $configuration_manager->setUserConfigurationFileLocation($custom_arcrc);
+ }
$global_config = $configuration_manager->readUserArcConfig();
$system_config = $configuration_manager->readSystemArcConfig();
@@ -141,9 +144,6 @@
$working_copy);
}
- if ($custom_arcrc) {
- $configuration_manager->setUserConfigurationFileLocation($custom_arcrc);
- }
$user_config = $configuration_manager->readUserConfigurationFile();
$config_class = $working_copy->getProjectConfig('arcanist_configuration');
diff --git a/src/configuration/ArcanistConfigurationManager.php b/src/configuration/ArcanistConfigurationManager.php
--- a/src/configuration/ArcanistConfigurationManager.php
+++ b/src/configuration/ArcanistConfigurationManager.php
@@ -159,10 +159,15 @@
* @{method:readUserArcConfig}.
*/
public function readUserConfigurationFile() {
- static $user_config;
- if ($user_config === null) {
+
+ // NOTE: This cache is per-path because `--arcrc-file` can adjust the
+ // file which is read.
+
+ static $user_configs = array();
+ $user_config_path = self::getUserConfigurationFileLocation();
+
+ if (!isset($user_configs[$user_config_path])) {
$user_config = array();
- $user_config_path = self::getUserConfigurationFileLocation();
$console = PhutilConsole::getConsole();
@@ -212,8 +217,10 @@
$user_config_path));
}
+ $user_configs[$user_config_path] = $user_config;
}
- return $user_config;
+
+ return $user_configs[$user_config_path];
}
/**

File Metadata

Mime Type
text/plain
Expires
Mon, Mar 17, 9:54 PM (4 d, 7 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7708926
Default Alt Text
D9263.id22000.diff (1 KB)

Event Timeline