diff --git a/src/parser/diff/ArcanistDiffParser.php b/src/parser/diff/ArcanistDiffParser.php index 9e7a33a8..a027e5c1 100644 --- a/src/parser/diff/ArcanistDiffParser.php +++ b/src/parser/diff/ArcanistDiffParser.php @@ -30,6 +30,7 @@ class ArcanistDiffParser { protected $detectBinaryFiles = false; protected $changes = array(); + private $forcePath; protected function setRepositoryAPI(ArcanistRepositoryAPI $api) { $this->api = $api; @@ -45,6 +46,16 @@ class ArcanistDiffParser { return $this; } + public function forcePath($path) { + $this->forcePath = $path; + return $this; + } + + public function setChanges(array $changes) { + $this->changes = mpull($changes, null, 'getCurrentPath'); + return $this; + } + public function parseSubversionDiff(ArcanistSubversionAPI $api, $paths) { $this->setRepositoryAPI($api); @@ -732,6 +743,10 @@ class ArcanistDiffParser { } } + if ($this->forcePath) { + return $this->changes[$this->forcePath]; + } + $change = new ArcanistDiffChange(); if ($path !== null) { $change->setCurrentPath($path);