Load merge request versions without loading whole diff from database

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
Dmitriy Zaporozhets 2016-08-09 15:16:50 +03:00
parent d99d5198c2
commit 28e33df46b
No known key found for this signature in database
GPG Key ID: 627C5F589F467F17
2 changed files with 8 additions and 4 deletions

View File

@ -30,6 +30,10 @@ class MergeRequestDiff < ActiveRecord::Base
# It allows you to override variables like head_commit_sha before getting diff.
after_create :save_git_content, unless: :importing?
def self.select_without_diff
select(column_names - ['st_diffs'])
end
# Collect information about commits and diff from repository
# and save it to the database as serialized data
def save_git_content

View File

@ -1,7 +1,7 @@
- diffs_count = @merge_request.merge_request_diffs.count
- merge_request_diffs = @merge_request.merge_request_diffs.select_without_diff
- latest_diff = merge_request_diffs.first
- if diffs_count > 1
- latest_diff = @merge_request.merge_request_diff
- if merge_request_diffs.size > 1
.mr-version-switch
Version:&nbsp;
%span.dropdown.inline
@ -13,7 +13,7 @@
#{@merge_request_diff.head_commit.short_id}
%span.caret
%ul.dropdown-menu.dropdown-menu-selectable
- @merge_request.merge_request_diffs.each do |merge_request_diff|
- merge_request_diffs.each do |merge_request_diff|
%li
= link_to diffs_namespace_project_merge_request_path(@project.namespace, @project, @merge_request, diff_id: merge_request_diff.id), class: ('is-active' if merge_request_diff == @merge_request_diff) do
%strong.monospace