@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Remove direct calls to LowLevelCommitQuery

Summary: Ref T2783. This cleans up some more of the direct VCS access calls. If the repository is local, this boils down to an in-process call. If not, it uses Conduit to make an intracluster request.

Test Plan: Used `reparse.php --message <commit> --trace` to observe cluster request.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T2783

Differential Revision: https://secure.phabricator.com/D11253

+44 -21
+35
src/applications/repository/worker/commitmessageparser/PhabricatorRepositoryCommitMessageParserWorker.php
··· 3 3 abstract class PhabricatorRepositoryCommitMessageParserWorker 4 4 extends PhabricatorRepositoryCommitParserWorker { 5 5 6 + abstract protected function parseCommitWithRef( 7 + PhabricatorRepository $repository, 8 + PhabricatorRepositoryCommit $commit, 9 + DiffusionCommitRef $ref); 10 + 11 + final protected function parseCommit( 12 + PhabricatorRepository $repository, 13 + PhabricatorRepositoryCommit $commit) { 14 + 15 + $viewer = PhabricatorUser::getOmnipotentUser(); 16 + 17 + $refs_raw = DiffusionQuery::callConduitWithDiffusionRequest( 18 + $viewer, 19 + DiffusionRequest::newFromDictionary( 20 + array( 21 + 'repository' => $repository, 22 + 'user' => $viewer, 23 + )), 24 + 'diffusion.querycommits', 25 + array( 26 + 'phids' => array($commit->getPHID()), 27 + 'bypassCache' => true, 28 + 'needMessages' => true, 29 + )); 30 + 31 + if (empty($refs_raw['data'])) { 32 + throw new Exception( 33 + pht('Unable to retrieve details for commit "%s"!')); 34 + } 35 + 36 + $ref = DiffusionCommitRef::newFromConduitResult(head($refs_raw['data'])); 37 + 38 + $this->parseCommitWithRef($repository, $commit, $ref); 39 + } 40 + 6 41 final protected function updateCommitData(DiffusionCommitRef $ref) { 7 42 $commit = $this->commit; 8 43 $author = $ref->getAuthor();
+3 -7
src/applications/repository/worker/commitmessageparser/PhabricatorRepositoryGitCommitMessageParserWorker.php
··· 3 3 final class PhabricatorRepositoryGitCommitMessageParserWorker 4 4 extends PhabricatorRepositoryCommitMessageParserWorker { 5 5 6 - protected function parseCommit( 6 + protected function parseCommitWithRef( 7 7 PhabricatorRepository $repository, 8 - PhabricatorRepositoryCommit $commit) { 9 - 10 - $ref = id(new DiffusionLowLevelCommitQuery()) 11 - ->setRepository($repository) 12 - ->withIdentifier($commit->getCommitIdentifier()) 13 - ->execute(); 8 + PhabricatorRepositoryCommit $commit, 9 + DiffusionCommitRef $ref) { 14 10 15 11 $this->updateCommitData($ref); 16 12
+3 -7
src/applications/repository/worker/commitmessageparser/PhabricatorRepositoryMercurialCommitMessageParserWorker.php
··· 3 3 final class PhabricatorRepositoryMercurialCommitMessageParserWorker 4 4 extends PhabricatorRepositoryCommitMessageParserWorker { 5 5 6 - protected function parseCommit( 6 + protected function parseCommitWithRef( 7 7 PhabricatorRepository $repository, 8 - PhabricatorRepositoryCommit $commit) { 9 - 10 - $ref = id(new DiffusionLowLevelCommitQuery()) 11 - ->setRepository($repository) 12 - ->withIdentifier($commit->getCommitIdentifier()) 13 - ->execute(); 8 + PhabricatorRepositoryCommit $commit, 9 + DiffusionCommitRef $ref) { 14 10 15 11 $this->updateCommitData($ref); 16 12
+3 -7
src/applications/repository/worker/commitmessageparser/PhabricatorRepositorySvnCommitMessageParserWorker.php
··· 3 3 final class PhabricatorRepositorySvnCommitMessageParserWorker 4 4 extends PhabricatorRepositoryCommitMessageParserWorker { 5 5 6 - protected function parseCommit( 6 + protected function parseCommitWithRef( 7 7 PhabricatorRepository $repository, 8 - PhabricatorRepositoryCommit $commit) { 9 - 10 - $ref = id(new DiffusionLowLevelCommitQuery()) 11 - ->setRepository($repository) 12 - ->withIdentifier($commit->getCommitIdentifier()) 13 - ->execute(); 8 + PhabricatorRepositoryCommit $commit, 9 + DiffusionCommitRef $ref) { 14 10 15 11 $this->updateCommitData($ref); 16 12