diff --git a/src/applications/diffusion/query/DiffusionCommitQuery.php b/src/applications/diffusion/query/DiffusionCommitQuery.php index a7f40496ee..714981ef0f 100644 --- a/src/applications/diffusion/query/DiffusionCommitQuery.php +++ b/src/applications/diffusion/query/DiffusionCommitQuery.php @@ -4,6 +4,7 @@ final class DiffusionCommitQuery extends PhabricatorCursorPagedPolicyAwareQuery { private $identifiers; + private $phids; /** * Load commits by partial or full identifiers, e.g. "rXab82393", "rX1234", @@ -16,6 +17,11 @@ final class DiffusionCommitQuery return $this; } + public function withPHIDs(array $phids) { + $this->phids = $phids; + return $this; + } + public function loadPage() { $table = new PhabricatorRepositoryCommit(); $conn_r = $table->establishConnection('r'); @@ -134,6 +140,13 @@ final class DiffusionCommitQuery } } + if ($this->phids) { + $where[] = qsprintf( + $conn_r, + 'phid IN (%Ls)', + $this->phids); + } + return $this->formatWhereClause($where); } diff --git a/src/applications/phid/handle/PhabricatorObjectHandleData.php b/src/applications/phid/handle/PhabricatorObjectHandleData.php index 87e43d7ce3..94f6a02ad3 100644 --- a/src/applications/phid/handle/PhabricatorObjectHandleData.php +++ b/src/applications/phid/handle/PhabricatorObjectHandleData.php @@ -47,10 +47,10 @@ final class PhabricatorObjectHandleData { return mpull($users, null, 'getPHID'); case PhabricatorPHIDConstants::PHID_TYPE_CMIT: - $commit_dao = new PhabricatorRepositoryCommit(); - $commits = $commit_dao->putInSet(new LiskDAOSet())->loadAllWhere( - 'phid IN (%Ls)', - $phids); + $commits = id(new DiffusionCommitQuery()) + ->setViewer($this->viewer) + ->withPHIDs($phids) + ->execute(); return mpull($commits, null, 'getPHID'); case PhabricatorPHIDConstants::PHID_TYPE_TASK: @@ -329,17 +329,10 @@ final class PhabricatorObjectHandleData { $handle->setPHID($phid); $handle->setType($type); - $repository = null; - if (!empty($objects[$phid])) { - $repository = $objects[$phid]->loadOneRelative( - new PhabricatorRepository(), - 'id', - 'getRepositoryID'); - } - - if (!$repository) { + if (empty($objects[$phid])) { $handle->setName('Unknown Commit'); } else { + $repository = $objects[$phid]->getRepository(); $commit = $objects[$phid]; $callsign = $repository->getCallsign(); $commit_identifier = $commit->getCommitIdentifier(); @@ -358,6 +351,7 @@ final class PhabricatorObjectHandleData { $handle->setTimestamp($commit->getEpoch()); $handle->setComplete(true); } + $handles[$phid] = $handle; } break; diff --git a/src/infrastructure/markup/PhabricatorMarkupEngine.php b/src/infrastructure/markup/PhabricatorMarkupEngine.php index e7db410e22..31007e4359 100644 --- a/src/infrastructure/markup/PhabricatorMarkupEngine.php +++ b/src/infrastructure/markup/PhabricatorMarkupEngine.php @@ -41,7 +41,7 @@ final class PhabricatorMarkupEngine { private $objects = array(); private $viewer; - private $version = 5; + private $version = 6; /* -( Markup Pipeline )---------------------------------------------------- */ diff --git a/src/infrastructure/markup/rule/PhabricatorRemarkupRuleObject.php b/src/infrastructure/markup/rule/PhabricatorRemarkupRuleObject.php index 38084b7dac..dcd5235b52 100644 --- a/src/infrastructure/markup/rule/PhabricatorRemarkupRuleObject.php +++ b/src/infrastructure/markup/rule/PhabricatorRemarkupRuleObject.php @@ -41,14 +41,14 @@ abstract class PhabricatorRemarkupRuleObject $text = $this->getObjectNamePrefix().$id; if ($anchor) { $matches = null; - if (preg_match('@^#(?:comment-)?(\d{1,7})$@', $anchor, $matches)) { + if (preg_match('@^(?:comment-)?(\d{1,7})$@', $anchor, $matches)) { // Maximum length is 7 because 12345678 could be a file hash in // Differential. - $href = $href."#comment-".$matches[1]; - $text = $text."#".$matches[1]; + $href = $href.'#comment-'.$matches[1]; + $text = $text.'#'.$matches[1]; } else { - $href = $href.$anchor; - $text = $text.$anchor; + $href = $href.'#'.$anchor; + $text = $text.'#'.$anchor; } } @@ -92,8 +92,11 @@ abstract class PhabricatorRemarkupRuleObject array($this, 'markupObjectEmbed'), $text); + // NOTE: The "(?