BigW Consortium Gitlab

Commit 06e7eeb1 by Alejandro Rodríguez

Use Gitaly's RepositoryService.HasLocalBranches RPC

parent 9ac5338b
...@@ -193,7 +193,7 @@ module Gitlab ...@@ -193,7 +193,7 @@ module Gitlab
def has_local_branches? def has_local_branches?
gitaly_migrate(:has_local_branches) do |is_enabled| gitaly_migrate(:has_local_branches) do |is_enabled|
if is_enabled if is_enabled
gitaly_ref_client.has_local_branches? gitaly_repository_client.has_local_branches?
else else
has_local_branches_rugged? has_local_branches_rugged?
end end
......
...@@ -57,14 +57,6 @@ module Gitlab ...@@ -57,14 +57,6 @@ module Gitlab
branch_names.count branch_names.count
end end
# TODO implement a more efficient RPC for this https://gitlab.com/gitlab-org/gitaly/issues/616
def has_local_branches?
request = Gitaly::FindAllBranchNamesRequest.new(repository: @gitaly_repo)
response = GitalyClient.call(@storage, :ref_service, :find_all_branch_names, request).first
response&.names.present?
end
def local_branches(sort_by: nil) def local_branches(sort_by: nil)
request = Gitaly::FindLocalBranchesRequest.new(repository: @gitaly_repo) request = Gitaly::FindLocalBranchesRequest.new(repository: @gitaly_repo)
request.sort_by = sort_by_param(sort_by) if sort_by request.sort_by = sort_by_param(sort_by) if sort_by
......
...@@ -58,6 +58,13 @@ module Gitlab ...@@ -58,6 +58,13 @@ module Gitlab
request = Gitaly::CreateRepositoryRequest.new(repository: @gitaly_repo) request = Gitaly::CreateRepositoryRequest.new(repository: @gitaly_repo)
GitalyClient.call(@storage, :repository_service, :create_repository, request) GitalyClient.call(@storage, :repository_service, :create_repository, request)
end end
def has_local_branches?
request = Gitaly::HasLocalBranchesRequest.new(repository: @gitaly_repo)
response = GitalyClient.call(@storage, :repository_service, :has_local_branches, request)
response.value
end
end end
end end
end end
...@@ -73,4 +73,15 @@ describe Gitlab::GitalyClient::RepositoryService do ...@@ -73,4 +73,15 @@ describe Gitlab::GitalyClient::RepositoryService do
client.apply_gitattributes(revision) client.apply_gitattributes(revision)
end end
end end
describe '#has_local_branches?' do
it 'sends a has_local_branches message' do
expect_any_instance_of(Gitaly::RepositoryService::Stub)
.to receive(:has_local_branches)
.with(gitaly_request_with_path(storage_name, relative_path), kind_of(Hash))
.and_return(double(value: true))
expect(client.has_local_branches?).to be(true)
end
end
end end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment