mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-10 00:42:41 +01:00
Use DiffQuery instead of direct hunk loads in MessageParser daemon
Summary: Ref T5179. Ref T4045. Continue reducing the number of direct hunk loads we perform. Test Plan: Pushed a closing commit, used `scripts/repository/reparse.php --message ...` to trigger this logic, got a sensible/accurate result. Reviewers: btrahan Reviewed By: btrahan Subscribers: epriestley Maniphest Tasks: T4045, T5179 Differential Revision: https://secure.phabricator.com/D9288
This commit is contained in:
parent
71e9fb96b5
commit
cb58acbe5b
1 changed files with 15 additions and 13 deletions
|
@ -294,12 +294,22 @@ abstract class PhabricatorRepositoryCommitMessageParserWorker
|
|||
|
||||
$repository = $this->repository;
|
||||
|
||||
$vs_diff = id(new DifferentialDiffQuery())
|
||||
->setViewer(PhabricatorUser::getOmnipotentUser())
|
||||
->withRevisionIDs(array($revision->getID()))
|
||||
->needChangesets(true)
|
||||
->setLimit(1)
|
||||
->executeOne();
|
||||
if (!$vs_diff) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if ($vs_diff->getCreationMethod() == 'commit') {
|
||||
return null;
|
||||
}
|
||||
|
||||
$vs_changesets = array();
|
||||
$vs_diff = id(new DifferentialDiff())->loadOneWhere(
|
||||
'revisionID = %d AND creationMethod != %s ORDER BY id DESC LIMIT 1',
|
||||
$revision->getID(),
|
||||
'commit');
|
||||
foreach ($vs_diff->loadChangesets() as $changeset) {
|
||||
foreach ($vs_diff->getChangesets() as $changeset) {
|
||||
$path = $changeset->getAbsoluteRepositoryPath($repository, $vs_diff);
|
||||
$path = ltrim($path, '/');
|
||||
$vs_changesets[$path] = $changeset;
|
||||
|
@ -317,14 +327,6 @@ abstract class PhabricatorRepositoryCommitMessageParserWorker
|
|||
return $vs_diff;
|
||||
}
|
||||
|
||||
$hunks = id(new DifferentialHunk())->loadAllWhere(
|
||||
'changesetID IN (%Ld)',
|
||||
mpull($vs_changesets, 'getID'));
|
||||
$hunks = mgroup($hunks, 'getChangesetID');
|
||||
foreach ($vs_changesets as $changeset) {
|
||||
$changeset->attachHunks(idx($hunks, $changeset->getID(), array()));
|
||||
}
|
||||
|
||||
$file_phids = array();
|
||||
foreach ($vs_changesets as $changeset) {
|
||||
$metadata = $changeset->getMetadata();
|
||||
|
|
Loading…
Reference in a new issue