mirror of
https://we.phorge.it/source/phorge.git
synced 2025-02-05 03:18:25 +01:00
Update DifferentialDiff: add repositoryPHID, drop parentRevisionID
Summary: Moves away from ArcanistProjects: - Adds storage for diffs to be directly associated with a repository (instead of indirectly, through arcanist projects). Not really populated yet. - Drops `parentRevisionID`, which is obsoleted by the "Depends On" edge. This is not exposed in the UI anywhere and doesn't do anything. Resolves TODO. Test Plan: Ran storage upgrades, browsed around, lots of `grep`. Reviewers: btrahan Reviewed By: btrahan CC: aran Differential Revision: https://secure.phabricator.com/D8072
This commit is contained in:
parent
756792caf5
commit
014a873773
5 changed files with 32 additions and 25 deletions
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE {$NAMESPACE}_differential.differential_diff
|
||||
DROP COLUMN parentRevisionID;
|
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE {$NAMESPACE}_differential.differential_diff
|
||||
ADD COLUMN repositoryPHID VARCHAR(64) COLLATE utf8_bin AFTER authorPHID;
|
|
@ -1,8 +1,5 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @group conduit
|
||||
*/
|
||||
final class ConduitAPI_differential_creatediff_Method extends ConduitAPIMethod {
|
||||
|
||||
public function getMethodDescription() {
|
||||
|
@ -16,18 +13,20 @@ final class ConduitAPI_differential_creatediff_Method extends ConduitAPIMethod {
|
|||
'sourcePath' => 'required string',
|
||||
'branch' => 'required string',
|
||||
'bookmark' => 'optional string',
|
||||
'sourceControlSystem' => 'required enum<svn, git>',
|
||||
'sourceControlSystem' => 'required enum<svn, git, hg>',
|
||||
'sourceControlPath' => 'required string',
|
||||
'sourceControlBaseRevision' => 'required string',
|
||||
'parentRevisionID' => 'optional revisionid',
|
||||
'creationMethod' => 'optional string',
|
||||
'authorPHID' => 'optional phid',
|
||||
'arcanistProject' => 'optional string',
|
||||
'repositoryUUID' => 'optional string',
|
||||
'lintStatus' =>
|
||||
'required enum<none, skip, okay, warn, fail, postponed>',
|
||||
'unitStatus' =>
|
||||
'required enum<none, skip, okay, warn, fail, postponed>',
|
||||
'repositoryPHID' => 'optional phid',
|
||||
|
||||
'parentRevisionID' => 'deprecated',
|
||||
'authorPHID' => 'deprecated',
|
||||
'repositoryUUID' => 'deprecated',
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -54,23 +53,23 @@ final class ConduitAPI_differential_creatediff_Method extends ConduitAPIMethod {
|
|||
|
||||
$diff->setBranch($request->getValue('branch'));
|
||||
$diff->setCreationMethod($request->getValue('creationMethod'));
|
||||
$diff->setAuthorPHID($request->getValue('authorPHID'));
|
||||
$diff->setAuthorPHID($request->getViewer()->getPHID());
|
||||
$diff->setBookmark($request->getValue('bookmark'));
|
||||
|
||||
$parent_id = $request->getValue('parentRevisionID');
|
||||
if ($parent_id) {
|
||||
// NOTE: If the viewer can't see the parent revision, just don't set
|
||||
// a parent revision ID. This isn't used for anything meaningful.
|
||||
// TODO: Can we delete this entirely?
|
||||
$parent_rev = id(new DifferentialRevisionQuery())
|
||||
->setViewer($request->getUser())
|
||||
->withIDs(array($parent_id))
|
||||
->execute();
|
||||
if ($parent_rev) {
|
||||
$parent_rev = head($parent_rev);
|
||||
if (!$parent_rev->isClosed()) {
|
||||
$diff->setParentRevisionID($parent_id);
|
||||
}
|
||||
// TODO: Remove this eventually; for now continue writing the UUID. Note
|
||||
// that we'll overwrite it below if we identify a repository, and `arc`
|
||||
// no longer sends it. This stuff is retained for backward compatibility.
|
||||
$diff->setRepositoryUUID($request->getValue('repositoryUUID'));
|
||||
|
||||
$repository_phid = $request->getValue('repositoryPHID');
|
||||
if ($repository_phid) {
|
||||
$repository = id(new PhabricatorRepositoryQuery())
|
||||
->setViewer($request->getViewer())
|
||||
->withPHIDs(array($repository_phid))
|
||||
->executeOne();
|
||||
if ($repository) {
|
||||
$diff->setRepositoryPHID($repository->getPHID());
|
||||
$diff->setRepositoryUUID($repository->getUUID());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -96,7 +95,6 @@ final class ConduitAPI_differential_creatediff_Method extends ConduitAPIMethod {
|
|||
}
|
||||
|
||||
$diff->setArcanistProjectPHID($project_phid);
|
||||
$diff->setRepositoryUUID($request->getValue('repositoryUUID'));
|
||||
|
||||
switch ($request->getValue('lintStatus')) {
|
||||
case 'skip':
|
||||
|
|
|
@ -8,6 +8,7 @@ final class DifferentialDiff
|
|||
|
||||
protected $revisionID;
|
||||
protected $authorPHID;
|
||||
protected $repositoryPHID;
|
||||
|
||||
protected $sourceMachine;
|
||||
protected $sourcePath;
|
||||
|
@ -24,7 +25,6 @@ final class DifferentialDiff
|
|||
protected $branch;
|
||||
protected $bookmark;
|
||||
|
||||
protected $parentRevisionID;
|
||||
protected $arcanistProjectPHID;
|
||||
protected $creationMethod;
|
||||
protected $repositoryUUID;
|
||||
|
@ -223,7 +223,6 @@ final class DifferentialDiff
|
|||
public function getDiffDict() {
|
||||
$dict = array(
|
||||
'id' => $this->getID(),
|
||||
'parent' => $this->getParentRevisionID(),
|
||||
'revisionID' => $this->getRevisionID(),
|
||||
'dateCreated' => $this->getDateCreated(),
|
||||
'dateModified' => $this->getDateModified(),
|
||||
|
|
|
@ -22,6 +22,7 @@ final class ConduitAPI_repository_query_Method
|
|||
'callsigns' => 'optional list<string>',
|
||||
'vcsTypes' => 'optional list<string>',
|
||||
'remoteURIs' => 'optional list<string>',
|
||||
'uuids' => 'optional list<string>',
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -63,6 +64,11 @@ final class ConduitAPI_repository_query_Method
|
|||
$query->withRemoteURIs($remote_uris);
|
||||
}
|
||||
|
||||
$uuids = $request->getValue('uuids', array());
|
||||
if ($uuids) {
|
||||
$query->withUUIDs($uuids);
|
||||
}
|
||||
|
||||
$repositories = $query->execute();
|
||||
|
||||
$results = array();
|
||||
|
|
Loading…
Add table
Reference in a new issue