Repository#exists? can only be queried with Gitaly

Has been in opt out for 5 months, and within GitLab been in production
for longer than that.

No code needs to be migrated as this is implemented in GoLang over at
Gitaly.

Closes https://gitlab.com/gitlab-org/gitaly/issues/314
This commit is contained in:
Zeger-Jan van de Weg 2018-04-24 16:57:35 +02:00
parent 5beb4ddebf
commit 5cd57cf250
No known key found for this signature in database
GPG key ID: 65F6A8D64A88ABAC
3 changed files with 9 additions and 22 deletions

View file

@ -0,0 +1,5 @@
---
title: Repository#exists? is always executed through Gitaly
merge_request:
author:
type: performance

View file

@ -142,15 +142,7 @@ module Gitlab
end
def exists?
Gitlab::GitalyClient.migrate(:repository_exists, status: Gitlab::GitalyClient::MigrationStatus::OPT_OUT) do |enabled|
if enabled
gitaly_repository_client.exists?
else
circuit_breaker.perform do
File.exist?(File.join(path, 'refs'))
end
end
end
gitaly_repository_client.exists?
end
# Returns an Array of branch names

View file

@ -1224,15 +1224,15 @@ describe Repository do
end
end
shared_examples 'repo exists check' do
describe '#exists?' do
it 'returns true when a repository exists' do
expect(repository.exists?).to eq(true)
expect(repository.exists?).to be(true)
end
it 'returns false if no full path can be constructed' do
allow(repository).to receive(:full_path).and_return(nil)
expect(repository.exists?).to eq(false)
expect(repository.exists?).to be(false)
end
context 'with broken storage', :broken_storage do
@ -1242,16 +1242,6 @@ describe Repository do
end
end
describe '#exists?' do
context 'when repository_exists is disabled' do
it_behaves_like 'repo exists check'
end
context 'when repository_exists is enabled', :skip_gitaly_mock do
it_behaves_like 'repo exists check'
end
end
describe '#has_visible_content?' do
before do
# If raw_repository.has_visible_content? gets called more than once then