Convert revision unsubscribers to edges
Test Plan: Ran the migration on a single revision, verified DB, called `loadUnsubscribedPHIDs()`. Reviewers: epriestley Reviewed By: epriestley CC: aran, Korvin Differential Revision: https://secure.phabricator.com/D4786
This commit is contained in:
@@ -238,7 +238,7 @@ final class DifferentialRevisionEditor extends PhabricatorEditor {
|
||||
$diff);
|
||||
$adapter->setExplicitCCs($new['ccs']);
|
||||
$adapter->setExplicitReviewers($new['rev']);
|
||||
$adapter->setForbiddenCCs($revision->getUnsubscribedPHIDs());
|
||||
$adapter->setForbiddenCCs($revision->loadUnsubscribedPHIDs());
|
||||
|
||||
$xscript = HeraldEngine::loadAndApplyRules($adapter);
|
||||
$xscript_uri = '/herald/transcript/'.$xscript->getID().'/';
|
||||
@@ -500,12 +500,10 @@ final class DifferentialRevisionEditor extends PhabricatorEditor {
|
||||
|
||||
self::addCC($revision, $phid, $reason);
|
||||
|
||||
$unsubscribed = $revision->getUnsubscribed();
|
||||
if (isset($unsubscribed[$phid])) {
|
||||
unset($unsubscribed[$phid]);
|
||||
$revision->setUnsubscribed($unsubscribed);
|
||||
$revision->save();
|
||||
}
|
||||
$type = PhabricatorEdgeConfig::TYPE_OBJECT_HAS_UNSUBSCRIBER;
|
||||
id(new PhabricatorEdgeEditor())
|
||||
->removeEdge($revision->getPHID(), $type, $phid)
|
||||
->save();
|
||||
}
|
||||
|
||||
public static function removeCCAndUpdateRevision(
|
||||
@@ -515,12 +513,10 @@ final class DifferentialRevisionEditor extends PhabricatorEditor {
|
||||
|
||||
self::removeCC($revision, $phid, $reason);
|
||||
|
||||
$unsubscribed = $revision->getUnsubscribed();
|
||||
if (empty($unsubscribed[$phid])) {
|
||||
$unsubscribed[$phid] = true;
|
||||
$revision->setUnsubscribed($unsubscribed);
|
||||
$revision->save();
|
||||
}
|
||||
$type = PhabricatorEdgeConfig::TYPE_OBJECT_HAS_UNSUBSCRIBER;
|
||||
id(new PhabricatorEdgeEditor())
|
||||
->addEdge($revision->getPHID(), $type, $phid)
|
||||
->save();
|
||||
}
|
||||
|
||||
public static function addCC(
|
||||
|
||||
@@ -17,7 +17,6 @@ final class DifferentialRevision extends DifferentialDAO {
|
||||
|
||||
protected $lineCount;
|
||||
protected $attached = array();
|
||||
protected $unsubscribed = array();
|
||||
|
||||
protected $mailKey;
|
||||
protected $branchName;
|
||||
@@ -264,8 +263,10 @@ final class DifferentialRevision extends DifferentialDAO {
|
||||
return idx($this->relationships, $relation, array());
|
||||
}
|
||||
|
||||
public function getUnsubscribedPHIDs() {
|
||||
return array_keys($this->getUnsubscribed());
|
||||
public function loadUnsubscribedPHIDs() {
|
||||
return PhabricatorEdgeQuery::loadDestinationPHIDs(
|
||||
$this->phid,
|
||||
PhabricatorEdgeConfig::TYPE_OBJECT_HAS_UNSUBSCRIBER);
|
||||
}
|
||||
|
||||
public function getPrimaryReviewer() {
|
||||
|
||||
@@ -1097,6 +1097,14 @@ final class PhabricatorBuiltinPatchList extends PhabricatorSQLPatchList {
|
||||
'type' => 'sql',
|
||||
'name' => $this->getPatchPath('20130127.altheraldtranscript.sql'),
|
||||
),
|
||||
'20130201.revisionunsubscribed.php' => array(
|
||||
'type' => 'php',
|
||||
'name' => $this->getPatchPath('20130201.revisionunsubscribed.php'),
|
||||
),
|
||||
'20130201.revisionunsubscribed.sql' => array(
|
||||
'type' => 'sql',
|
||||
'name' => $this->getPatchPath('20130201.revisionunsubscribed.sql'),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user