Merge branch 'zj-repo-gitaly' into 'master'

RepositoryExists is always called with #gitaly_migration

Closes #38333

See merge request gitlab-org/gitlab-ce!14513
This commit is contained in:
Sean McGivern 2017-09-28 08:56:02 +00:00
commit e03bad12bf
3 changed files with 18 additions and 19 deletions

View file

@ -489,13 +489,7 @@ class Repository
def exists?
return false unless full_path
Gitlab::GitalyClient.migrate(:repository_exists) do |enabled|
if enabled
raw_repository.exists?
else
refs_directory_exists?
end
end
raw_repository.exists?
end
cache_method :exists?
@ -1063,12 +1057,6 @@ class Repository
blob.data
end
def refs_directory_exists?
circuit_breaker.perform do
File.exist?(File.join(path_to_repo, 'refs'))
end
end
def cache
# TODO: should we use UUIDs here? We could move repositories without clearing this cache
@cache ||= RepositoryCache.new(full_path, @project.id)
@ -1120,10 +1108,6 @@ class Repository
Gitlab::Git::Repository.new(project.repository_storage, disk_path + '.git', Gitlab::GlRepository.gl_repository(project, false))
end
def circuit_breaker
@circuit_breaker ||= Gitlab::Git::Storage::CircuitBreaker.for_storage(project.repository_storage)
end
def find_commits_by_message_by_shelling_out(query, ref, path, limit, offset)
ref ||= root_ref

View file

@ -0,0 +1,5 @@
---
title: Gitaly RepositoryExists remains opt-in for all method calls
merge_request:
author:
type: fixed

View file

@ -73,8 +73,6 @@ module Gitlab
delegate :empty?,
to: :rugged
delegate :exists?, to: :gitaly_repository_client
def ==(other)
path == other.path
end
@ -102,6 +100,18 @@ module Gitlab
@circuit_breaker ||= Gitlab::Git::Storage::CircuitBreaker.for_storage(storage)
end
def exists?
Gitlab::GitalyClient.migrate(:repository_exists) do |enabled|
if enabled
gitaly_repository_client.exists?
else
circuit_breaker.perform do
File.exist?(File.join(@path, 'refs'))
end
end
end
end
# Returns an Array of branch names
# sorted by name ASC
def branch_names