mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-10 08:52:39 +01:00
Fix differential.getdiff
, etc., for diffs with no Arcanist Project
Summary: `getArcanistProjectName()` has some logic which gets messy with the `self::ATTACHABLE` mechanism. This makes `differential.getdiff` and similar Conduit methods throw an exception when querying a diff which doesn't have a project. See <http://pastebin.com/Czzrd0Jz>. Instead, unconditionally attach a project (possibly `null`) when loading diffs if they need projects. Test Plan: Ran `differential.getdiff` against a `arc diff --raw` diff with no project, got a result instead of an exception. Reviewers: btrahan Reviewed By: btrahan CC: aran, sttwister Differential Revision: https://secure.phabricator.com/D7101
This commit is contained in:
parent
0d77a7f39f
commit
119c2b8cec
2 changed files with 10 additions and 7 deletions
|
@ -77,13 +77,16 @@ final class DifferentialDiffQuery
|
|||
'phid IN (%Ls)',
|
||||
$phids);
|
||||
$project_map = mpull($projects, null, 'getPHID');
|
||||
foreach ($diffs as $diff) {
|
||||
if ($diff->getArcanistProjectPHID()) {
|
||||
$project = $project_map[$diff->getArcanistProjectPHID()];
|
||||
$diff->attachArcanistProject($project);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($diffs as $diff) {
|
||||
$project = null;
|
||||
if ($diff->getArcanistProjectPHID()) {
|
||||
$project = idx($project_map, $diff->getArcanistProjectPHID());
|
||||
}
|
||||
$diff->attachArcanistProject($project);
|
||||
}
|
||||
|
||||
return $diffs;
|
||||
}
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ final class DifferentialDiff
|
|||
}
|
||||
|
||||
public function attachArcanistProject(
|
||||
PhabricatorRepositoryArcanistProject $project) {
|
||||
PhabricatorRepositoryArcanistProject $project = null) {
|
||||
$this->arcanistProject = $project;
|
||||
return $this;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue