protected function filterTransactions(PhabricatorLiskDAO $object, array $xactions) { // Remove TYPE_DISCOVERY xactions that are the result of a reparse. $previously_discovered_commits = array(); $discovery_xactions = idx(mgroup($xactions, 'getTransactionType'), ReleephRequestTransaction::TYPE_DISCOVERY); if ($discovery_xactions) { $previous_xactions = id(new ReleephRequestTransactionQuery())->setViewer(PhabricatorUser::getOmnipotentUser())->withObjectPHIDs(array($object->getPHID()))->execute(); foreach ($previous_xactions as $xaction) { if ($xaction->getTransactionType() === ReleephRequestTransaction::TYPE_DISCOVERY) { $commit_phid = $xaction->getNewValue(); $previously_discovered_commits[$commit_phid] = true; } } } foreach ($xactions as $key => $xaction) { if ($xaction->getTransactionType() === ReleephRequestTransaction::TYPE_DISCOVERY && idx($previously_discovered_commits, $xaction->getNewValue())) { unset($xactions[$key]); } } return parent::filterTransactions($object, $xactions); }