diff --git a/src/applications/repository/engine/PhabricatorRepositoryDiscoveryEngine.php b/src/applications/repository/engine/PhabricatorRepositoryDiscoveryEngine.php --- a/src/applications/repository/engine/PhabricatorRepositoryDiscoveryEngine.php +++ b/src/applications/repository/engine/PhabricatorRepositoryDiscoveryEngine.php @@ -682,7 +682,6 @@ $this->queueCommitImportTask( $repository, - $commit->getID(), $commit->getPHID(), $task_priority, $via = 'discovery'); diff --git a/src/applications/repository/engine/PhabricatorRepositoryEngine.php b/src/applications/repository/engine/PhabricatorRepositoryEngine.php --- a/src/applications/repository/engine/PhabricatorRepositoryEngine.php +++ b/src/applications/repository/engine/PhabricatorRepositoryEngine.php @@ -85,10 +85,9 @@ final protected function queueCommitImportTask( PhabricatorRepository $repository, - $commit_id, $commit_phid, $task_priority, - $via = null) { + $via) { $vcs = $repository->getVersionControlSystem(); switch ($vcs) { @@ -109,7 +108,7 @@ } $data = array( - 'commitID' => $commit_id, + 'commitPHID' => $commit_phid, ); if ($via !== null) { diff --git a/src/applications/repository/engine/PhabricatorRepositoryRefEngine.php b/src/applications/repository/engine/PhabricatorRepositoryRefEngine.php --- a/src/applications/repository/engine/PhabricatorRepositoryRefEngine.php +++ b/src/applications/repository/engine/PhabricatorRepositoryRefEngine.php @@ -597,7 +597,6 @@ $this->queueCommitImportTask( $repository, - $row['id'], $row['phid'], $task_priority, $via = 'ref'); diff --git a/src/applications/repository/management/PhabricatorRepositoryManagementReparseWorkflow.php b/src/applications/repository/management/PhabricatorRepositoryManagementReparseWorkflow.php --- a/src/applications/repository/management/PhabricatorRepositoryManagementReparseWorkflow.php +++ b/src/applications/repository/management/PhabricatorRepositoryManagementReparseWorkflow.php @@ -247,7 +247,7 @@ // all the requested steps explicitly. $spec = array( - 'commitID' => $commit->getID(), + 'commitPHID' => $commit->getPHID(), 'only' => !$importing, 'via' => 'reparse', ); diff --git a/src/applications/repository/worker/PhabricatorRepositoryCommitParserWorker.php b/src/applications/repository/worker/PhabricatorRepositoryCommitParserWorker.php --- a/src/applications/repository/worker/PhabricatorRepositoryCommitParserWorker.php +++ b/src/applications/repository/worker/PhabricatorRepositoryCommitParserWorker.php @@ -11,30 +11,51 @@ return $this->commit; } - $commit_id = idx($this->getTaskData(), 'commitID'); - if (!$commit_id) { + $viewer = $this->getViewer(); + $task_data = $this->getTaskData(); + + $commit_query = id(new DiffusionCommitQuery()) + ->setViewer($viewer); + + $commit_phid = idx($task_data, 'commitPHID'); + + // TODO: See T13591. This supports execution of legacy tasks and can + // eventually be removed. Newer tasks use "commitPHID" instead of + // "commitID". + if (!$commit_phid) { + $commit_id = idx($task_data, 'commitID'); + if ($commit_id) { + $legacy_commit = id(clone $commit_query) + ->withIDs(array($commit_id)) + ->executeOne(); + if ($legacy_commit) { + $commit_phid = $legacy_commit->getPHID(); + } + } + } + + if (!$commit_phid) { throw new PhabricatorWorkerPermanentFailureException( - pht('No "%s" in task data.', 'commitID')); + pht('Task data has no "commitPHID".')); } - $commit = id(new DiffusionCommitQuery()) - ->setViewer(PhabricatorUser::getOmnipotentUser()) - ->withIDs(array($commit_id)) + $commit = id(clone $commit_query) + ->withPHIDs(array($commit_phid)) ->executeOne(); if (!$commit) { throw new PhabricatorWorkerPermanentFailureException( - pht('Commit "%s" does not exist.', $commit_id)); + pht('Commit "%s" does not exist.', $commit_phid)); } if ($commit->isUnreachable()) { throw new PhabricatorWorkerPermanentFailureException( pht( - 'Commit "%s" (with internal ID "%s") is no longer reachable from '. - 'any branch, tag, or ref in this repository, so it will not be '. + 'Commit "%s" (with PHID "%s") is no longer reachable from any '. + 'branch, tag, or ref in this repository, so it will not be '. 'imported. This usually means that the branch the commit was on '. 'was deleted or overwritten.', $commit->getMonogram(), - $commit_id)); + $commit_phid)); } $this->commit = $commit; @@ -64,7 +85,7 @@ $repository = $commit->getRepository(); $data = array( - 'commitID' => $commit->getID(), + 'commitPHID' => $commit->getPHID(), ); $task_data = $this->getTaskData(); @@ -144,7 +165,7 @@ $commit = id(new DiffusionCommitQuery()) ->setViewer($viewer) - ->withIDs(array(idx($this->getTaskData(), 'commitID'))) + ->withPHIDs(array(idx($this->getTaskData(), 'commitPHID'))) ->executeOne(); if (!$commit) { return $suffix;