Convert differential.revisionPHID commit detail to edge

Summary: Migration doesn't delete differential.revisionPHID but maybe it should?

Test Plan: Reparsed commit, ran the migration, deleted differential.revisionPHID, looked at task with attached commit with attached revision.

Reviewers: epriestley, edward

Reviewed By: epriestley

CC: aran, Korvin, AnhNhan

Differential Revision: https://secure.phabricator.com/D5634
This commit is contained in:
Jakub Vrana
2013-04-12 22:48:16 -07:00
parent 4fb1a9e00f
commit e31e998f3b
9 changed files with 74 additions and 40 deletions

View File

@@ -502,26 +502,19 @@ final class ManiphestTaskDetailController extends ManiphestController {
$commit_phids = array_keys(
$edges[PhabricatorEdgeConfig::TYPE_TASK_HAS_COMMIT]);
if ($commit_phids) {
$commits = id(new PhabricatorRepositoryCommit())
->putInSet(new LiskDAOSet())
->loadAllWhere('phid IN (%Ls)', $commit_phids);
$commit_drev = PhabricatorEdgeConfig::TYPE_COMMIT_HAS_DREV;
$drev_edges = id(new PhabricatorEdgeQuery())
->withSourcePHIDs($commit_phids)
->withEdgeTypes(array($commit_drev))
->execute();
foreach ($commits as $commit) {
$phid = $commit->getPHID();
foreach ($commit_phids as $phid) {
$revisions_commits[$phid] = $handles[$phid]->renderLink();
$data = $commit->loadOneRelative(
new PhabricatorRepositoryCommitData(),
'commitID');
$revision_phid = ($data
? $data->getCommitDetail('differential.revisionPHID')
: null);
$revision_phid = key($drev_edges[$phid][$commit_drev]);
$revision_handle = idx($handles, $revision_phid);
if ($revision_handle) {
$has_drev = PhabricatorEdgeConfig::TYPE_TASK_HAS_RELATED_DREV;
unset($edges[$has_drev][$revision_phid]);
$task_drev = PhabricatorEdgeConfig::TYPE_TASK_HAS_RELATED_DREV;
unset($edges[$task_drev][$revision_phid]);
$revisions_commits[$phid] = hsprintf(
'%s / %s',
$revision_handle->renderLink($revision_handle->getName()),