diff --git a/src/applications/diffusion/controller/DiffusionBrowseSearchController.php b/src/applications/diffusion/controller/DiffusionBrowseSearchController.php index 1070ec1bfd..76ff2553c9 100644 --- a/src/applications/diffusion/controller/DiffusionBrowseSearchController.php +++ b/src/applications/diffusion/controller/DiffusionBrowseSearchController.php @@ -52,39 +52,37 @@ final class DiffusionBrowseSearchController extends DiffusionBrowseController { $search_mode = null; - try { - if (strlen($this->getRequest()->getStr('grep'))) { - $search_mode = 'grep'; - $query_string = $this->getRequest()->getStr('grep'); - $results = $this->callConduitWithDiffusionRequest( - 'diffusion.searchquery', - array( - 'grep' => $query_string, - 'commit' => $drequest->getStableCommit(), - 'path' => $drequest->getPath(), - 'limit' => $limit + 1, - 'offset' => $page, - )); - } else { // Filename search. - $search_mode = 'find'; - $query_string = $this->getRequest()->getStr('find'); - $results = $this->callConduitWithDiffusionRequest( - 'diffusion.querypaths', - array( - 'pattern' => $query_string, - 'commit' => $drequest->getStableCommit(), - 'path' => $drequest->getPath(), - 'limit' => $limit + 1, - 'offset' => $page, - )); - } - } catch (ConduitException $ex) { - $err = $ex->getErrorDescription(); - if ($err != '') { - return id(new PHUIErrorView()) - ->setTitle(pht('Search Error')) - ->appendChild($err); - } + switch ($repository->getVersionControlSystem()) { + case PhabricatorRepositoryType::REPOSITORY_TYPE_SVN: + $results = array(); + break; + default: + if (strlen($this->getRequest()->getStr('grep'))) { + $search_mode = 'grep'; + $query_string = $this->getRequest()->getStr('grep'); + $results = $this->callConduitWithDiffusionRequest( + 'diffusion.searchquery', + array( + 'grep' => $query_string, + 'commit' => $drequest->getStableCommit(), + 'path' => $drequest->getPath(), + 'limit' => $limit + 1, + 'offset' => $page, + )); + } else { // Filename search. + $search_mode = 'find'; + $query_string = $this->getRequest()->getStr('find'); + $results = $this->callConduitWithDiffusionRequest( + 'diffusion.querypaths', + array( + 'pattern' => $query_string, + 'commit' => $drequest->getStableCommit(), + 'path' => $drequest->getPath(), + 'limit' => $limit + 1, + 'offset' => $page, + )); + } + break; } $results = $pager->sliceResults($results); diff --git a/src/applications/diffusion/controller/DiffusionCommitBranchesController.php b/src/applications/diffusion/controller/DiffusionCommitBranchesController.php index ad3b5d8731..0be218fac8 100644 --- a/src/applications/diffusion/controller/DiffusionCommitBranchesController.php +++ b/src/applications/diffusion/controller/DiffusionCommitBranchesController.php @@ -8,22 +8,22 @@ final class DiffusionCommitBranchesController extends DiffusionController { protected function processDiffusionRequest(AphrontRequest $request) { $drequest = $this->getDiffusionRequest(); + $repository = $drequest->getRepository(); - $branches = array(); - try { - $branches = $this->callConduitWithDiffusionRequest( - 'diffusion.branchquery', - array( - 'contains' => $drequest->getCommit(), - )); - } catch (ConduitException $ex) { - if ($ex->getMessage() != 'ERR-UNSUPPORTED-VCS') { - throw $ex; - } + switch ($repository->getVersionControlSystem()) { + case PhabricatorRepositoryType::REPOSITORY_TYPE_SVN: + $branches = array(); + break; + default: + $branches = $this->callConduitWithDiffusionRequest( + 'diffusion.branchquery', + array( + 'contains' => $drequest->getCommit(), + )); + break; } $branches = DiffusionRepositoryRef::loadAllFromDictionaries($branches); - $branch_links = array(); foreach ($branches as $branch) { $branch_links[] = phutil_tag( diff --git a/src/applications/diffusion/controller/DiffusionCommitTagsController.php b/src/applications/diffusion/controller/DiffusionCommitTagsController.php index 22fcf4907e..3c698f9a70 100644 --- a/src/applications/diffusion/controller/DiffusionCommitTagsController.php +++ b/src/applications/diffusion/controller/DiffusionCommitTagsController.php @@ -8,23 +8,23 @@ final class DiffusionCommitTagsController extends DiffusionController { protected function processDiffusionRequest(AphrontRequest $request) { $drequest = $this->getDiffusionRequest(); + $repository = $drequest->getRepository(); + $tag_limit = 10; - - $tags = array(); - try { - $tags = DiffusionRepositoryTag::newFromConduit( - $this->callConduitWithDiffusionRequest( - 'diffusion.tagsquery', - array( - 'commit' => $drequest->getCommit(), - 'limit' => $tag_limit + 1, - ))); - } catch (ConduitException $ex) { - if ($ex->getMessage() != 'ERR-UNSUPPORTED-VCS') { - throw $ex; - } + switch ($repository->getVersionControlSystem()) { + case PhabricatorRepositoryType::REPOSITORY_TYPE_SVN: + $tags = array(); + break; + default: + $tags = DiffusionRepositoryTag::newFromConduit( + $this->callConduitWithDiffusionRequest( + 'diffusion.tagsquery', + array( + 'commit' => $drequest->getCommit(), + 'limit' => $tag_limit + 1, + ))); + break; } - $has_more_tags = (count($tags) > $tag_limit); $tags = array_slice($tags, 0, $tag_limit); diff --git a/src/applications/diffusion/controller/DiffusionRepositoryController.php b/src/applications/diffusion/controller/DiffusionRepositoryController.php index f0fd121719..873895d329 100644 --- a/src/applications/diffusion/controller/DiffusionRepositoryController.php +++ b/src/applications/diffusion/controller/DiffusionRepositoryController.php @@ -374,23 +374,23 @@ final class DiffusionRepositoryController extends DiffusionController { private function buildTagListTable(DiffusionRequest $drequest) { $viewer = $this->getRequest()->getUser(); + $repository = $drequest->getRepository(); + switch ($repository->getVersionControlSystem()) { + case PhabricatorRepositoryType::REPOSITORY_TYPE_SVN: + // no tags in SVN + return null; + } $tag_limit = 15; $tags = array(); - try { - $tags = DiffusionRepositoryTag::newFromConduit( - $this->callConduitWithDiffusionRequest( - 'diffusion.tagsquery', - array( - // On the home page, we want to find tags on any branch. - 'commit' => null, - 'limit' => $tag_limit + 1, - ))); - } catch (ConduitException $e) { - if ($e->getMessage() != 'ERR-UNSUPPORTED-VCS') { - throw $e; - } - } + $tags = DiffusionRepositoryTag::newFromConduit( + $this->callConduitWithDiffusionRequest( + 'diffusion.tagsquery', + array( + // On the home page, we want to find tags on any branch. + 'commit' => null, + 'limit' => $tag_limit + 1, + ))); if (!$tags) { return null; @@ -402,7 +402,7 @@ final class DiffusionRepositoryController extends DiffusionController { $commits = id(new DiffusionCommitQuery()) ->setViewer($viewer) ->withIdentifiers(mpull($tags, 'getCommitIdentifier')) - ->withRepository($drequest->getRepository()) + ->withRepository($repository) ->needCommitData(true) ->execute(); diff --git a/src/applications/diffusion/controller/DiffusionTagListController.php b/src/applications/diffusion/controller/DiffusionTagListController.php index f89215cc8c..bf2c2f84ce 100644 --- a/src/applications/diffusion/controller/DiffusionTagListController.php +++ b/src/applications/diffusion/controller/DiffusionTagListController.php @@ -28,16 +28,16 @@ final class DiffusionTagListController extends DiffusionController { $is_commit = false; } - $tags = array(); - try { - $conduit_result = $this->callConduitWithDiffusionRequest( - 'diffusion.tagsquery', - $params); - $tags = DiffusionRepositoryTag::newFromConduit($conduit_result); - } catch (ConduitException $ex) { - if ($ex->getMessage() != 'ERR-UNSUPPORTED-VCS') { - throw $ex; - } + switch ($repository->getVersionControlSystem()) { + case PhabricatorRepositoryType::REPOSITORY_TYPE_SVN: + $tags = array(); + break; + default: + $conduit_result = $this->callConduitWithDiffusionRequest( + 'diffusion.tagsquery', + $params); + $tags = DiffusionRepositoryTag::newFromConduit($conduit_result); + break; } $tags = $pager->sliceResults($tags);