mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-23 22:10:55 +01:00
Reduce the total number of calls to getCallsign()
Summary: Ref T4245. Before doing any hard work here, we can dramatically reduce the number of things that make calls to `getCallsign()` to make navigating things easier. Almost all of them only care about a monogram, URI, or display name. Test Plan: - Searched for `r uniquename` in jump nav. - Ran `bin/repository reparse --change rXXXyyyyy --trace`, observed query against bad commit table. - Ran `bin/search index rXXXyyyy --trace --force`, observed proper title when indexing commit. - Browed repository list, saw proper `rXXX` and appropriate link targets. - Mentioned `rXXX` in Remarkup, got a link to the right place. Reviewers: chad Reviewed By: chad Maniphest Tasks: T4245 Differential Revision: https://secure.phabricator.com/D14923
This commit is contained in:
parent
45ccc930ec
commit
ff1bfb64dd
7 changed files with 35 additions and 35 deletions
|
@ -40,10 +40,11 @@ final class PhabricatorRepositoryRepositoryPHIDType
|
|||
$monogram = $repository->getMonogram();
|
||||
$callsign = $repository->getCallsign();
|
||||
$name = $repository->getName();
|
||||
$uri = $repository->getURI();
|
||||
|
||||
$handle->setName($monogram);
|
||||
$handle->setFullName("{$monogram} {$name}");
|
||||
$handle->setURI("/diffusion/{$callsign}/");
|
||||
$handle->setURI($uri);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -155,15 +155,15 @@ final class PhabricatorRepositorySearchEngine
|
|||
->setUser($viewer)
|
||||
->setObject($repository)
|
||||
->setHeader($repository->getName())
|
||||
->setObjectName('r'.$repository->getCallsign())
|
||||
->setHref($this->getApplicationURI($repository->getCallsign().'/'));
|
||||
->setObjectName($repository->getMonogram())
|
||||
->setHref($repository->getURI());
|
||||
|
||||
$commit = $repository->getMostRecentCommit();
|
||||
if ($commit) {
|
||||
$commit_link = DiffusionView::linkCommit(
|
||||
$repository,
|
||||
$commit->getCommitIdentifier(),
|
||||
$commit->getSummary());
|
||||
$repository,
|
||||
$commit->getCommitIdentifier(),
|
||||
$commit->getSummary());
|
||||
$item->setSubhead($commit_link);
|
||||
$item->setEpoch($commit->getEpoch());
|
||||
}
|
||||
|
|
|
@ -20,8 +20,10 @@ final class DiffusionCommitFulltextEngine
|
|||
$commit_message = $commit_data->getCommitMessage();
|
||||
$author_phid = $commit_data->getCommitDetail('authorPHID');
|
||||
|
||||
$title = 'r'.$repository->getCallsign().$commit->getCommitIdentifier().
|
||||
' '.$commit_data->getSummary();
|
||||
$monogram = $commit->getMonogram();
|
||||
$summary = $commit_data->getSummary();
|
||||
|
||||
$title = "{$monogram} {$summary}";
|
||||
|
||||
$document
|
||||
->setDocumentCreated($date_created)
|
||||
|
|
|
@ -203,10 +203,7 @@ final class PhabricatorRepositoryCommit
|
|||
}
|
||||
|
||||
public function getURI() {
|
||||
$repository = $this->getRepository();
|
||||
$callsign = $repository->getCallsign();
|
||||
$commit_identifier = $this->getCommitIdentifier();
|
||||
return '/r'.$callsign.$commit_identifier;
|
||||
return '/'.$this->getMonogram();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -251,6 +248,14 @@ final class PhabricatorRepositoryCommit
|
|||
return $this->setAuditStatus($status);
|
||||
}
|
||||
|
||||
public function getMonogram() {
|
||||
$repository = $this->getRepository();
|
||||
$callsign = $repository->getCallsign();
|
||||
$identifier = $this->getCommitIdentifier();
|
||||
|
||||
return "r{$callsign}{$identifier}";
|
||||
}
|
||||
|
||||
|
||||
/* -( PhabricatorPolicyInterface )----------------------------------------- */
|
||||
|
||||
|
|
|
@ -17,30 +17,26 @@ abstract class PhabricatorRepositoryCommitParserWorker
|
|||
pht('No "%s" in task data.', 'commitID'));
|
||||
}
|
||||
|
||||
$commit = id(new PhabricatorRepositoryCommit())->load($commit_id);
|
||||
|
||||
$commit = id(new DiffusionCommitQuery())
|
||||
->setViewer(PhabricatorUser::getOmnipotentUser())
|
||||
->withIDs(array($commit_id))
|
||||
->executeOne();
|
||||
if (!$commit) {
|
||||
throw new PhabricatorWorkerPermanentFailureException(
|
||||
pht('Commit "%s" does not exist.', $commit_id));
|
||||
}
|
||||
|
||||
return $this->commit = $commit;
|
||||
$this->commit = $commit;
|
||||
|
||||
return $commit;
|
||||
}
|
||||
|
||||
final protected function doWork() {
|
||||
if (!$this->loadCommit()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$repository = id(new PhabricatorRepositoryQuery())
|
||||
->setViewer(PhabricatorUser::getOmnipotentUser())
|
||||
->withIDs(array($this->commit->getRepositoryID()))
|
||||
->executeOne();
|
||||
if (!$repository) {
|
||||
return;
|
||||
}
|
||||
$commit = $this->loadCommit();
|
||||
$repository = $commit->getRepository();
|
||||
|
||||
$this->repository = $repository;
|
||||
|
||||
$this->parseCommit($repository, $this->commit);
|
||||
}
|
||||
|
||||
|
@ -52,14 +48,14 @@ abstract class PhabricatorRepositoryCommitParserWorker
|
|||
PhabricatorRepository $repository,
|
||||
PhabricatorRepositoryCommit $commit);
|
||||
|
||||
protected function isBadCommit($full_commit_name) {
|
||||
protected function isBadCommit(PhabricatorRepositoryCommit $commit) {
|
||||
$repository = new PhabricatorRepository();
|
||||
|
||||
$bad_commit = queryfx_one(
|
||||
$repository->establishConnection('w'),
|
||||
'SELECT * FROM %T WHERE fullCommitName = %s',
|
||||
PhabricatorRepository::TABLE_BADCOMMIT,
|
||||
$full_commit_name);
|
||||
$commit->getMonogram());
|
||||
|
||||
return (bool)$bad_commit;
|
||||
}
|
||||
|
|
|
@ -17,12 +17,8 @@ abstract class PhabricatorRepositoryCommitChangeParserWorker
|
|||
PhabricatorRepository $repository,
|
||||
PhabricatorRepositoryCommit $commit) {
|
||||
|
||||
$identifier = $commit->getCommitIdentifier();
|
||||
$callsign = $repository->getCallsign();
|
||||
$full_name = 'r'.$callsign.$identifier;
|
||||
|
||||
$this->log("%s\n", pht('Parsing %s...', $full_name));
|
||||
if ($this->isBadCommit($full_name)) {
|
||||
$this->log("%s\n", pht('Parsing "%s"...', $commit->getMonogram()));
|
||||
if ($this->isBadCommit($commit)) {
|
||||
$this->log(pht('This commit is marked bad!'));
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -57,7 +57,7 @@ final class PhabricatorJumpNavHandler extends Phobject {
|
|||
->execute();
|
||||
if (count($repositories) == 1) {
|
||||
// Just one match, jump to repository.
|
||||
$uri = '/diffusion/'.head($repositories)->getCallsign().'/';
|
||||
$uri = head($repositories)->getURI();
|
||||
} else {
|
||||
// More than one match, jump to search.
|
||||
$uri = urisprintf('/diffusion/?order=name&name=%s', $name);
|
||||
|
|
Loading…
Reference in a new issue