Merge branch 'gitaly-mandatory-20180703-jv-2' into 'master'
Remove more Gitaly feature flags Closes gitaly#329, gitaly#320, gitaly#323, and gitaly#328 See merge request gitlab-org/gitlab-ce!20343
This commit is contained in:
commit
7a355f6856
|
@ -1,5 +1,3 @@
|
|||
# Gitaly note: JV: 1 RPC, migration in progress.
|
||||
|
||||
# Gitlab::Git::CommitStats counts the additions, deletions, and total changes
|
||||
# in a commit.
|
||||
module Gitlab
|
||||
|
@ -16,12 +14,8 @@ module Gitlab
|
|||
@deletions = 0
|
||||
@total = 0
|
||||
|
||||
repo.gitaly_migrate(:commit_stats) do |is_enabled|
|
||||
if is_enabled
|
||||
gitaly_stats(repo, commit)
|
||||
else
|
||||
rugged_stats(commit)
|
||||
end
|
||||
repo.wrapped_gitaly_errors do
|
||||
gitaly_stats(repo, commit)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -31,12 +25,6 @@ module Gitlab
|
|||
@deletions = stats.deletions
|
||||
@total = @additions + @deletions
|
||||
end
|
||||
|
||||
def rugged_stats(commit)
|
||||
diff = commit.rugged_diff_from_parent
|
||||
_files_changed, @additions, @deletions = diff.stat
|
||||
@total = @additions + @deletions
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -251,7 +251,6 @@ module Gitlab
|
|||
|
||||
# Returns an Array of Tags
|
||||
#
|
||||
# Gitaly migration: https://gitlab.com/gitlab-org/gitaly/issues/390
|
||||
def tags
|
||||
wrapped_gitaly_errors do
|
||||
gitaly_ref_client.tags
|
||||
|
@ -598,17 +597,9 @@ module Gitlab
|
|||
# @repository.submodule_url_for('master', 'rack')
|
||||
# # => git@localhost:rack.git
|
||||
#
|
||||
# Gitaly migration: https://gitlab.com/gitlab-org/gitaly/issues/329
|
||||
def submodule_url_for(ref, path)
|
||||
Gitlab::GitalyClient.migrate(:submodule_url_for) do |is_enabled|
|
||||
if is_enabled
|
||||
gitaly_submodule_url_for(ref, path)
|
||||
else
|
||||
if submodules(ref).any?
|
||||
submodule = submodules(ref)[path]
|
||||
submodule['url'] if submodule
|
||||
end
|
||||
end
|
||||
wrapped_gitaly_errors do
|
||||
gitaly_submodule_url_for(ref, path)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -833,22 +824,14 @@ module Gitlab
|
|||
# Ex.
|
||||
# repo.ls_files('master')
|
||||
#
|
||||
# Gitaly migration: https://gitlab.com/gitlab-org/gitaly/issues/327
|
||||
def ls_files(ref)
|
||||
gitaly_commit_client.ls_files(ref)
|
||||
end
|
||||
|
||||
# Gitaly migration: https://gitlab.com/gitlab-org/gitaly/issues/328
|
||||
def copy_gitattributes(ref)
|
||||
Gitlab::GitalyClient.migrate(:apply_gitattributes) do |is_enabled|
|
||||
if is_enabled
|
||||
gitaly_copy_gitattributes(ref)
|
||||
else
|
||||
rugged_copy_gitattributes(ref)
|
||||
end
|
||||
wrapped_gitaly_errors do
|
||||
gitaly_repository_client.apply_gitattributes(ref)
|
||||
end
|
||||
rescue GRPC::InvalidArgument
|
||||
raise InvalidRef
|
||||
end
|
||||
|
||||
def info_attributes
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# Gitaly note: JV: needs 1 RPC, migration is in progress.
|
||||
|
||||
module Gitlab
|
||||
module Git
|
||||
class Tree
|
||||
|
@ -17,12 +15,8 @@ module Gitlab
|
|||
def where(repository, sha, path = nil, recursive = false)
|
||||
path = nil if path == '' || path == '/'
|
||||
|
||||
Gitlab::GitalyClient.migrate(:tree_entries) do |is_enabled|
|
||||
if is_enabled
|
||||
repository.gitaly_commit_client.tree_entries(repository, sha, path, recursive)
|
||||
else
|
||||
tree_entries_from_rugged(repository, sha, path, recursive)
|
||||
end
|
||||
repository.wrapped_gitaly_errors do
|
||||
repository.gitaly_commit_client.tree_entries(repository, sha, path, recursive)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -48,6 +48,8 @@ module Gitlab
|
|||
def apply_gitattributes(revision)
|
||||
request = Gitaly::ApplyGitattributesRequest.new(repository: @gitaly_repo, revision: encode_binary(revision))
|
||||
GitalyClient.call(@storage, :repository_service, :apply_gitattributes, request)
|
||||
rescue GRPC::InvalidArgument => ex
|
||||
raise Gitlab::Git::Repository::InvalidRef, ex
|
||||
end
|
||||
|
||||
def info_attributes
|
||||
|
|
|
@ -1402,94 +1402,84 @@ describe Gitlab::Git::Repository, seed_helper: true do
|
|||
end
|
||||
|
||||
describe "#copy_gitattributes" do
|
||||
shared_examples 'applying git attributes' do
|
||||
let(:attributes_path) { File.join(SEED_STORAGE_PATH, TEST_REPO_PATH, 'info/attributes') }
|
||||
let(:attributes_path) { File.join(SEED_STORAGE_PATH, TEST_REPO_PATH, 'info/attributes') }
|
||||
|
||||
after do
|
||||
FileUtils.rm_rf(attributes_path) if Dir.exist?(attributes_path)
|
||||
end
|
||||
|
||||
it "raises an error with invalid ref" do
|
||||
expect { repository.copy_gitattributes("invalid") }.to raise_error(Gitlab::Git::Repository::InvalidRef)
|
||||
end
|
||||
|
||||
context 'when forcing encoding issues' do
|
||||
let(:branch_name) { "ʕ•ᴥ•ʔ" }
|
||||
|
||||
before do
|
||||
repository.create_branch(branch_name, "master")
|
||||
end
|
||||
|
||||
after do
|
||||
FileUtils.rm_rf(attributes_path) if Dir.exist?(attributes_path)
|
||||
repository.rm_branch(branch_name, user: build(:admin))
|
||||
end
|
||||
|
||||
it "raises an error with invalid ref" do
|
||||
expect { repository.copy_gitattributes("invalid") }.to raise_error(Gitlab::Git::Repository::InvalidRef)
|
||||
end
|
||||
it "doesn't raise with a valid unicode ref" do
|
||||
expect { repository.copy_gitattributes(branch_name) }.not_to raise_error
|
||||
|
||||
context 'when forcing encoding issues' do
|
||||
let(:branch_name) { "ʕ•ᴥ•ʔ" }
|
||||
|
||||
before do
|
||||
repository.create_branch(branch_name, "master")
|
||||
end
|
||||
|
||||
after do
|
||||
repository.rm_branch(branch_name, user: build(:admin))
|
||||
end
|
||||
|
||||
it "doesn't raise with a valid unicode ref" do
|
||||
expect { repository.copy_gitattributes(branch_name) }.not_to raise_error
|
||||
|
||||
repository
|
||||
end
|
||||
end
|
||||
|
||||
context "with no .gitattrbutes" do
|
||||
before do
|
||||
repository.copy_gitattributes("master")
|
||||
end
|
||||
|
||||
it "does not have an info/attributes" do
|
||||
expect(File.exist?(attributes_path)).to be_falsey
|
||||
end
|
||||
end
|
||||
|
||||
context "with .gitattrbutes" do
|
||||
before do
|
||||
repository.copy_gitattributes("gitattributes")
|
||||
end
|
||||
|
||||
it "has an info/attributes" do
|
||||
expect(File.exist?(attributes_path)).to be_truthy
|
||||
end
|
||||
|
||||
it "has the same content in info/attributes as .gitattributes" do
|
||||
contents = File.open(attributes_path, "rb") { |f| f.read }
|
||||
expect(contents).to eq("*.md binary\n")
|
||||
end
|
||||
end
|
||||
|
||||
context "with updated .gitattrbutes" do
|
||||
before do
|
||||
repository.copy_gitattributes("gitattributes")
|
||||
repository.copy_gitattributes("gitattributes-updated")
|
||||
end
|
||||
|
||||
it "has an info/attributes" do
|
||||
expect(File.exist?(attributes_path)).to be_truthy
|
||||
end
|
||||
|
||||
it "has the updated content in info/attributes" do
|
||||
contents = File.read(attributes_path)
|
||||
expect(contents).to eq("*.txt binary\n")
|
||||
end
|
||||
end
|
||||
|
||||
context "with no .gitattrbutes in HEAD but with previous info/attributes" do
|
||||
before do
|
||||
repository.copy_gitattributes("gitattributes")
|
||||
repository.copy_gitattributes("master")
|
||||
end
|
||||
|
||||
it "does not have an info/attributes" do
|
||||
expect(File.exist?(attributes_path)).to be_falsey
|
||||
end
|
||||
repository
|
||||
end
|
||||
end
|
||||
|
||||
context 'when gitaly is enabled' do
|
||||
it_behaves_like 'applying git attributes'
|
||||
context "with no .gitattrbutes" do
|
||||
before do
|
||||
repository.copy_gitattributes("master")
|
||||
end
|
||||
|
||||
it "does not have an info/attributes" do
|
||||
expect(File.exist?(attributes_path)).to be_falsey
|
||||
end
|
||||
end
|
||||
|
||||
context 'when gitaly is disabled', :disable_gitaly do
|
||||
it_behaves_like 'applying git attributes'
|
||||
context "with .gitattrbutes" do
|
||||
before do
|
||||
repository.copy_gitattributes("gitattributes")
|
||||
end
|
||||
|
||||
it "has an info/attributes" do
|
||||
expect(File.exist?(attributes_path)).to be_truthy
|
||||
end
|
||||
|
||||
it "has the same content in info/attributes as .gitattributes" do
|
||||
contents = File.open(attributes_path, "rb") { |f| f.read }
|
||||
expect(contents).to eq("*.md binary\n")
|
||||
end
|
||||
end
|
||||
|
||||
context "with updated .gitattrbutes" do
|
||||
before do
|
||||
repository.copy_gitattributes("gitattributes")
|
||||
repository.copy_gitattributes("gitattributes-updated")
|
||||
end
|
||||
|
||||
it "has an info/attributes" do
|
||||
expect(File.exist?(attributes_path)).to be_truthy
|
||||
end
|
||||
|
||||
it "has the updated content in info/attributes" do
|
||||
contents = File.read(attributes_path)
|
||||
expect(contents).to eq("*.txt binary\n")
|
||||
end
|
||||
end
|
||||
|
||||
context "with no .gitattrbutes in HEAD but with previous info/attributes" do
|
||||
before do
|
||||
repository.copy_gitattributes("gitattributes")
|
||||
repository.copy_gitattributes("master")
|
||||
end
|
||||
|
||||
it "does not have an info/attributes" do
|
||||
expect(File.exist?(attributes_path)).to be_falsey
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue