diff --git a/src/applications/diffusion/controller/DiffusionChangeController.php b/src/applications/diffusion/controller/DiffusionChangeController.php --- a/src/applications/diffusion/controller/DiffusionChangeController.php +++ b/src/applications/diffusion/controller/DiffusionChangeController.php @@ -33,7 +33,6 @@ } $repository = $drequest->getRepository(); - $callsign = $repository->getCallsign(); $changesets = array( 0 => $changeset, ); @@ -59,7 +58,8 @@ $left_uri = $drequest->generateURI($raw_params); $changeset_view->setRawFileURIs($left_uri, $right_uri); - $changeset_view->setRenderURI('/diffusion/'.$callsign.'/diff/'); + $changeset_view->setRenderURI($repository->getPathURI('diff/')); + $changeset_view->setWhitespace( DifferentialChangesetParser::WHITESPACE_SHOW_ALL); $changeset_view->setUser($viewer); diff --git a/src/applications/diffusion/controller/DiffusionCommitController.php b/src/applications/diffusion/controller/DiffusionCommitController.php --- a/src/applications/diffusion/controller/DiffusionCommitController.php +++ b/src/applications/diffusion/controller/DiffusionCommitController.php @@ -36,7 +36,6 @@ } $repository = $drequest->getRepository(); - $callsign = $repository->getCallsign(); $content = array(); $commit = id(new DiffusionCommitQuery()) @@ -321,19 +320,21 @@ $change_list->setChangesets($changesets); $change_list->setVisibleChangesets($visible_changesets); $change_list->setRenderingReferences($references); - $change_list->setRenderURI('/diffusion/'.$callsign.'/diff/'); + $change_list->setRenderURI( + $repository->getPathURI('diff/')); $change_list->setRepository($repository); $change_list->setUser($user); // TODO: Try to setBranch() to something reasonable here? $change_list->setStandaloneURI( - '/diffusion/'.$callsign.'/diff/'); + $repository->getPathURI('diff/')); + $change_list->setRawFileURIs( // TODO: Implement this, somewhat tricky if there's an octopus merge // or whatever? null, - '/diffusion/'.$callsign.'/diff/?view=r'); + $repository->getPathURI('diff/?view=r')); $change_list->setInlineCommentControllerURI( '/diffusion/inline/edit/'.phutil_escape_uri($commit->getPHID()).'/'); @@ -567,8 +568,8 @@ ), pht('Unknown')); - $callsign = $repository->getCallsign(); - $root = '/diffusion/'.$callsign.'/commit/'.$commit->getCommitIdentifier(); + $identifier = $commit->getCommitIdentifier(); + $root = $repository->getPathURI("commit/{$identifier}"); Javelin::initBehavior( 'diffusion-commit-branches', array( @@ -904,8 +905,8 @@ $commit, PhabricatorPolicyCapability::CAN_EDIT); - $uri = '/diffusion/'.$repository->getCallsign().'/commit/'. - $commit->getCommitIdentifier().'/edit/'; + $identifier = $commit->getCommitIdentifier(); + $uri = $repository->getPathURI("commit/{$identifier}/edit/"); $action = id(new PhabricatorActionView()) ->setName(pht('Edit Commit')) diff --git a/src/applications/diffusion/controller/DiffusionController.php b/src/applications/diffusion/controller/DiffusionController.php --- a/src/applications/diffusion/controller/DiffusionController.php +++ b/src/applications/diffusion/controller/DiffusionController.php @@ -86,7 +86,6 @@ return $crumb_list; } - $callsign = $repository->getCallsign(); $repository_name = $repository->getName(); if (!$spec['commit'] && !$spec['tags'] && !$spec['branches']) { @@ -112,17 +111,14 @@ $crumb_list[] = $crumb; $stable_commit = $drequest->getStableCommit(); + $commit_name = $repository->formatCommitName($stable_commit); + $commit_uri = $repository->getCommitURI($stable_commit); if ($spec['tags']) { $crumb = new PHUICrumbView(); if ($spec['commit']) { - $crumb->setName( - pht('Tags for %s', 'r'.$callsign.$stable_commit)); - $crumb->setHref($drequest->generateURI( - array( - 'action' => 'commit', - 'commit' => $drequest->getStableCommit(), - ))); + $crumb->setName(pht('Tags for %s', $commit_name)); + $crumb->setHref($commit_uri); } else { $crumb->setName(pht('Tags')); } @@ -139,8 +135,8 @@ if ($spec['commit']) { $crumb = id(new PHUICrumbView()) - ->setName("r{$callsign}{$stable_commit}") - ->setHref("r{$callsign}{$stable_commit}"); + ->setName($commit_name) + ->setHref($commit_uri); $crumb_list[] = $crumb; return $crumb_list; } @@ -187,7 +183,7 @@ protected function getRepositoryControllerURI( PhabricatorRepository $repository, $path) { - return $this->getApplicationURI($repository->getCallsign().'/'.$path); + return $repository->getPathURI($path); } protected function renderPathLinks(DiffusionRequest $drequest, $action) { diff --git a/src/applications/diffusion/controller/DiffusionExternalController.php b/src/applications/diffusion/controller/DiffusionExternalController.php --- a/src/applications/diffusion/controller/DiffusionExternalController.php +++ b/src/applications/diffusion/controller/DiffusionExternalController.php @@ -48,7 +48,7 @@ $redirect = DiffusionRequest::generateDiffusionURI( array( 'action' => 'browse', - 'callsign' => $repository->getCallsign(), + 'repository' => $repository, 'branch' => $repository->getDefaultBranch(), 'commit' => $id, )); @@ -86,7 +86,7 @@ $redirect = DiffusionRequest::generateDiffusionURI( array( 'action' => 'browse', - 'callsign' => $repo->getCallsign(), + 'repository' => $repo, 'branch' => $repo->getDefaultBranch(), 'commit' => $commit->getCommitIdentifier(), )); @@ -99,7 +99,7 @@ $href = DiffusionRequest::generateDiffusionURI( array( 'action' => 'browse', - 'callsign' => $repo->getCallsign(), + 'repository' => $repo, 'branch' => $repo->getDefaultBranch(), 'commit' => $commit->getCommitIdentifier(), )); diff --git a/src/applications/diffusion/controller/DiffusionRepositoryController.php b/src/applications/diffusion/controller/DiffusionRepositoryController.php --- a/src/applications/diffusion/controller/DiffusionRepositoryController.php +++ b/src/applications/diffusion/controller/DiffusionRepositoryController.php @@ -480,7 +480,7 @@ private function buildActionList(PhabricatorRepository $repository) { $viewer = $this->getRequest()->getUser(); - $edit_uri = $this->getApplicationURI($repository->getCallsign().'/edit/'); + $edit_uri = $repository->getPathURI('edit/'); $view = id(new PhabricatorActionListView()) ->setUser($viewer) diff --git a/src/applications/diffusion/herald/DiffusionCommitBranchesHeraldField.php b/src/applications/diffusion/herald/DiffusionCommitBranchesHeraldField.php --- a/src/applications/diffusion/herald/DiffusionCommitBranchesHeraldField.php +++ b/src/applications/diffusion/herald/DiffusionCommitBranchesHeraldField.php @@ -14,7 +14,7 @@ $repository = $object->getRepository(); $params = array( - 'callsign' => $repository->getCallsign(), + 'repository' => $repository->getPHID(), 'contains' => $commit->getCommitIdentifier(), ); diff --git a/src/applications/diffusion/query/DiffusionQuery.php b/src/applications/diffusion/query/DiffusionQuery.php --- a/src/applications/diffusion/query/DiffusionQuery.php +++ b/src/applications/diffusion/query/DiffusionQuery.php @@ -53,7 +53,7 @@ $repository = $drequest->getRepository(); $core_params = array( - 'callsign' => $repository->getCallsign(), + 'repository' => $repository->getPHID(), ); if ($drequest->getBranch() !== null) { diff --git a/src/applications/diffusion/request/DiffusionRequest.php b/src/applications/diffusion/request/DiffusionRequest.php --- a/src/applications/diffusion/request/DiffusionRequest.php +++ b/src/applications/diffusion/request/DiffusionRequest.php @@ -465,7 +465,7 @@ } $defaults = array( - 'callsign' => $this->getCallsign(), + 'repository' => $this->getRepository(), 'path' => $this->getPath(), 'branch' => $this->getBranch(), 'commit' => $default_commit, @@ -487,6 +487,7 @@ * - `action` One of `history`, `browse`, `change`, `lastmodified`, * `branch`, `tags`, `branches`, or `revision-ref`. The action specified * by the URI. + * - `repository` Repository. * - `callsign` Repository callsign. * - `branch` Optional if action is not `branch`, branch name. * - `path` Optional, path to file. @@ -504,7 +505,14 @@ public static function generateDiffusionURI(array $params) { $action = idx($params, 'action'); - $callsign = idx($params, 'callsign'); + $repository = idx($params, 'repository'); + + if ($repository) { + $callsign = $repository->getCallsign(); + } else { + $callsign = idx($params, 'callsign'); + } + $path = idx($params, 'path'); $branch = idx($params, 'branch'); $commit = idx($params, 'commit'); diff --git a/src/applications/harbormaster/step/HarbormasterWaitForPreviousBuildStepImplementation.php b/src/applications/harbormaster/step/HarbormasterWaitForPreviousBuildStepImplementation.php --- a/src/applications/harbormaster/step/HarbormasterWaitForPreviousBuildStepImplementation.php +++ b/src/applications/harbormaster/step/HarbormasterWaitForPreviousBuildStepImplementation.php @@ -63,8 +63,8 @@ $call = new ConduitCall( 'diffusion.commitparentsquery', array( - 'commit' => $commit->getCommitIdentifier(), - 'callsign' => $commit->getRepository()->getCallsign(), + 'commit' => $commit->getCommitIdentifier(), + 'repository' => $commit->getRepository()->getPHID(), )); $call->setUser(PhabricatorUser::getOmnipotentUser()); $parents = $call->execute(); diff --git a/src/applications/owners/controller/PhabricatorOwnersDetailController.php b/src/applications/owners/controller/PhabricatorOwnersDetailController.php --- a/src/applications/owners/controller/PhabricatorOwnersDetailController.php +++ b/src/applications/owners/controller/PhabricatorOwnersDetailController.php @@ -270,7 +270,7 @@ } $href = DiffusionRequest::generateDiffusionURI( array( - 'callsign' => $repo->getCallsign(), + 'repository' => $repo, 'branch' => $repo->getDefaultBranch(), 'path' => $path->getPath(), 'action' => 'browse', diff --git a/src/applications/repository/customfield/PhabricatorCommitBranchesField.php b/src/applications/repository/customfield/PhabricatorCommitBranchesField.php --- a/src/applications/repository/customfield/PhabricatorCommitBranchesField.php +++ b/src/applications/repository/customfield/PhabricatorCommitBranchesField.php @@ -26,7 +26,7 @@ $params = array( 'contains' => $this->getObject()->getCommitIdentifier(), - 'callsign' => $this->getObject()->getRepository()->getCallsign(), + 'repository' => $this->getObject()->getRepository()->getPHID(), ); try { diff --git a/src/applications/repository/customfield/PhabricatorCommitMergedCommitsField.php b/src/applications/repository/customfield/PhabricatorCommitMergedCommitsField.php --- a/src/applications/repository/customfield/PhabricatorCommitMergedCommitsField.php +++ b/src/applications/repository/customfield/PhabricatorCommitMergedCommitsField.php @@ -39,7 +39,7 @@ id(new ConduitCall('diffusion.mergedcommitsquery', array( 'commit' => $commit->getCommitIdentifier(), 'limit' => $limit + 1, - 'callsign' => $commit->getRepository()->getCallsign(), + 'repository' => $commit->getRepository()->getPHID(), ))) ->setUser($this->getViewer()) ->execute()); diff --git a/src/applications/repository/customfield/PhabricatorCommitTagsField.php b/src/applications/repository/customfield/PhabricatorCommitTagsField.php --- a/src/applications/repository/customfield/PhabricatorCommitTagsField.php +++ b/src/applications/repository/customfield/PhabricatorCommitTagsField.php @@ -26,7 +26,7 @@ $params = array( 'commit' => $this->getObject()->getCommitIdentifier(), - 'callsign' => $this->getObject()->getRepository()->getCallsign(), + 'repository' => $this->getObject()->getRepository()->getPHID(), ); try { diff --git a/src/applications/repository/query/PhabricatorRepositorySearchEngine.php b/src/applications/repository/query/PhabricatorRepositorySearchEngine.php --- a/src/applications/repository/query/PhabricatorRepositorySearchEngine.php +++ b/src/applications/repository/query/PhabricatorRepositorySearchEngine.php @@ -177,7 +177,7 @@ if ($size) { $history_uri = DiffusionRequest::generateDiffusionURI( array( - 'callsign' => $repository->getCallsign(), + 'repository' => $repository, 'action' => 'history', )); diff --git a/src/applications/repository/storage/PhabricatorRepository.php b/src/applications/repository/storage/PhabricatorRepository.php --- a/src/applications/repository/storage/PhabricatorRepository.php +++ b/src/applications/repository/storage/PhabricatorRepository.php @@ -601,6 +601,10 @@ return '/diffusion/'.$this->getCallsign().'/'; } + public function getPathURI($path) { + return $this->getURI().$path; + } + public function getCommitURI($identifier) { $callsign = $this->getCallsign(); return "/r{$callsign}{$identifier}";