Skip to content

Commit

Permalink
Only fetch one commit for the latest revision
Browse files Browse the repository at this point in the history
  • Loading branch information
hellcp-work committed Feb 23, 2023
1 parent 35f244d commit 673eb0c
Show file tree
Hide file tree
Showing 46 changed files with 10,580 additions and 7,485 deletions.
2 changes: 2 additions & 0 deletions src/api/app/controllers/webui/package_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,8 @@ def show

@services = @files.any? { |file| file[:name] == '_service' }

@package.cache_revisions(@revision)

respond_to do |format|
format.html
format.js
Expand Down
6 changes: 4 additions & 2 deletions src/api/app/lib/backend/api/sources/package.rb
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,10 @@ def self.files(project_name, package_name, options = {})

# Returns the revisions (mrev) list for a package
# @return [String]
def self.revisions(project_name, package_name)
http_get(['/source/:project/:package/_history', project_name, package_name], params: { meta: 1, deleted: 1 })
def self.revisions(project_name, package_name, options = {})
http_get(['/source/:project/:package/_history', project_name, package_name], params: options,
accepted: [:meta, :rev, :deleted, :limit],
defaults: { meta: 1, deleted: 1 })
end

# Returns the meta file from a package
Expand Down
9 changes: 4 additions & 5 deletions src/api/app/models/package.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1207,10 +1207,9 @@ def serviceinfo
{}
end

def parse_all_history
answer = source_file('_history')

doc = Xmlhash.parse(answer)
def cache_revisions(revision = nil)
opts = revision ? { rev: revision } : {}
doc = Xmlhash.parse(Backend::Api::Sources::Package.revisions(project.name, name, opts))
doc.elements('revision') do |s|
Rails.cache.write(['history', self, s['rev']], s)
Rails.cache.write(['history_md5', self, s.get('srcmd5')], s)
Expand All @@ -1231,7 +1230,7 @@ def commit(rev = nil)
commit = fetch_rev_from_history_cache(rev)
return commit if commit

parse_all_history
cache_revisions
# now it has to be in cache
fetch_rev_from_history_cache(rev)
end
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 673eb0c

Please sign in to comment.