Page MenuHomePhabricator

D21588.diff
No OneTemporary

D21588.diff

diff --git a/src/config/source/ArcanistFilesystemConfigurationSource.php b/src/config/source/ArcanistFilesystemConfigurationSource.php
--- a/src/config/source/ArcanistFilesystemConfigurationSource.php
+++ b/src/config/source/ArcanistFilesystemConfigurationSource.php
@@ -39,7 +39,20 @@
$content = id(new PhutilJSON())
->encodeFormatted($values);
- Filesystem::writeFile($this->path, $content);
+ $path = $this->path;
+
+ // If the containing directory does not exist yet, create it.
+ //
+ // This is expected when (for example) you first write to project
+ // configuration in a Git working copy: the ".git/arc" directory will
+ // not exist yet.
+
+ $dir = dirname($path);
+ if (!Filesystem::pathExists($dir)) {
+ Filesystem::createDirectory($dir, 0755, $recursive = true);
+ }
+
+ Filesystem::writeFile($path, $content);
}
}

File Metadata

Mime Type
text/plain
Expires
Sun, May 12, 7:50 AM (3 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6273455
Default Alt Text
D21588.diff (887 B)

Event Timeline