Merge branch 'fix-lazy-blobs-requesting-all-previous-blobs' into 'master'
Ensure that we only request blobs in one batch Closes #60829 See merge request gitlab-org/gitlab-ce!27625
This commit is contained in:
commit
e7c494cc08
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: Fix Blob.lazy always loading all previously-requested blobs when a new request
|
||||
is made
|
||||
merge_request:
|
||||
author:
|
||||
type: performance
|
|
@ -55,13 +55,13 @@ module Gitlab
|
|||
def get_blobs(revision_paths, limit = -1)
|
||||
return [] if revision_paths.empty?
|
||||
|
||||
revision_paths.map! do |rev, path|
|
||||
request_revision_paths = revision_paths.map do |rev, path|
|
||||
Gitaly::GetBlobsRequest::RevisionPath.new(revision: rev, path: encode_binary(path))
|
||||
end
|
||||
|
||||
request = Gitaly::GetBlobsRequest.new(
|
||||
repository: @gitaly_repo,
|
||||
revision_paths: revision_paths,
|
||||
revision_paths: request_revision_paths,
|
||||
limit: limit
|
||||
)
|
||||
|
||||
|
|
|
@ -43,6 +43,21 @@ describe Blob do
|
|||
changelog.id
|
||||
contributing.id
|
||||
end
|
||||
|
||||
it 'does not include blobs from previous requests in later requests' do
|
||||
changelog = described_class.lazy(project, commit_id, 'CHANGELOG')
|
||||
contributing = described_class.lazy(same_project, commit_id, 'CONTRIBUTING.md')
|
||||
|
||||
# Access property so the values are loaded
|
||||
changelog.id
|
||||
contributing.id
|
||||
|
||||
readme = described_class.lazy(project, commit_id, 'README.md')
|
||||
|
||||
expect(project.repository).to receive(:blobs_at).with([[commit_id, 'README.md']]).once.and_call_original
|
||||
|
||||
readme.id
|
||||
end
|
||||
end
|
||||
|
||||
describe '#data' do
|
||||
|
|
Loading…
Reference in New Issue