diff --git a/src/applications/repository/worker/commitmessageparser/PhabricatorRepositoryCommitMessageParserWorker.php b/src/applications/repository/worker/commitmessageparser/PhabricatorRepositoryCommitMessageParserWorker.php --- a/src/applications/repository/worker/commitmessageparser/PhabricatorRepositoryCommitMessageParserWorker.php +++ b/src/applications/repository/worker/commitmessageparser/PhabricatorRepositoryCommitMessageParserWorker.php @@ -294,12 +294,22 @@ $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 @@ 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();