Commit 904cbe01 authored by Douwe Maan's avatar Douwe Maan

Merge branch 'zj-raw-changes-mandatory' into 'master'

Raw changes calculation is Gitaly only now

Closes gitaly#1138

See merge request gitlab-org/gitlab-ce!20057
parents 4226873a 2ac67228
...@@ -529,30 +529,15 @@ module Gitlab ...@@ -529,30 +529,15 @@ module Gitlab
def raw_changes_between(old_rev, new_rev) def raw_changes_between(old_rev, new_rev)
@raw_changes_between ||= {} @raw_changes_between ||= {}
@raw_changes_between[[old_rev, new_rev]] ||= begin @raw_changes_between[[old_rev, new_rev]] ||=
begin
return [] if new_rev.blank? || new_rev == Gitlab::Git::BLANK_SHA return [] if new_rev.blank? || new_rev == Gitlab::Git::BLANK_SHA
gitaly_migrate(:raw_changes_between) do |is_enabled| wrapped_gitaly_errors do
if is_enabled
gitaly_repository_client.raw_changes_between(old_rev, new_rev) gitaly_repository_client.raw_changes_between(old_rev, new_rev)
.each_with_object([]) do |msg, arr| .each_with_object([]) do |msg, arr|
msg.raw_changes.each { |change| arr << ::Gitlab::Git::RawDiffChange.new(change) } msg.raw_changes.each { |change| arr << ::Gitlab::Git::RawDiffChange.new(change) }
end end
else
result = []
circuit_breaker.perform do
Open3.pipeline_r(git_diff_cmd(old_rev, new_rev), format_git_cat_file_script, git_cat_file_cmd) do |last_stdout, wait_threads|
last_stdout.each_line { |line| result << ::Gitlab::Git::RawDiffChange.new(line.chomp!) }
if wait_threads.any? { |waiter| !waiter.value&.success? }
raise ::Gitlab::Git::Repository::GitError, "Unabled to obtain changes between #{old_rev} and #{new_rev}"
end
end
end
result
end
end end
end end
rescue ArgumentError => e rescue ArgumentError => e
......
...@@ -1043,7 +1043,6 @@ describe Gitlab::Git::Repository, seed_helper: true do ...@@ -1043,7 +1043,6 @@ describe Gitlab::Git::Repository, seed_helper: true do
end end
describe '#raw_changes_between' do describe '#raw_changes_between' do
shared_examples 'raw changes' do
let(:old_rev) { } let(:old_rev) { }
let(:new_rev) { } let(:new_rev) { }
let(:changes) { repository.raw_changes_between(old_rev, new_rev) } let(:changes) { repository.raw_changes_between(old_rev, new_rev) }
...@@ -1081,15 +1080,6 @@ describe Gitlab::Git::Repository, seed_helper: true do ...@@ -1081,15 +1080,6 @@ describe Gitlab::Git::Repository, seed_helper: true do
end end
end end
context 'when gitaly is enabled' do
it_behaves_like 'raw changes'
end
context 'when gitaly is disabled', :disable_gitaly do
it_behaves_like 'raw changes'
end
end
describe '#merge_base' do describe '#merge_base' do
shared_examples '#merge_base' do shared_examples '#merge_base' do
where(:from, :to, :result) do where(:from, :to, :result) do
......
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