diff options
author | Stan Hu <stanhu@gmail.com> | 2018-11-01 07:50:39 -0700 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2018-11-01 07:50:39 -0700 |
commit | de1db4972cff7539b4ed490e9ebaf87f06500bbd (patch) | |
tree | 854c51fb38707ffaab3095dde074bbbabf6225ee | |
parent | 0844ba04b518b4cd0a326a2ee0e8431eeb26950d (diff) | |
download | gitlab-ce-de1db4972cff7539b4ed490e9ebaf87f06500bbd.tar.gz |
Avoidp loading merge request diff files when not needed
-rw-r--r-- | app/services/merge_requests/reload_diffs_service.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/diff/file_collection/base.rb | 7 |
2 files changed, 6 insertions, 3 deletions
diff --git a/app/services/merge_requests/reload_diffs_service.rb b/app/services/merge_requests/reload_diffs_service.rb index 44997cf012b..b47d8f3f63a 100644 --- a/app/services/merge_requests/reload_diffs_service.rb +++ b/app/services/merge_requests/reload_diffs_service.rb @@ -38,7 +38,7 @@ module MergeRequests # reloading the diff. MergeRequestDiff .where(merge_request: merge_request) - .preload(:merge_request_diff_files, merge_request: :target_project) + .preload(merge_request: :target_project) .find_each do |merge_request_diff| next if merge_request_diff == new_diff diff --git a/lib/gitlab/diff/file_collection/base.rb b/lib/gitlab/diff/file_collection/base.rb index b79ff771a2b..2ad6fe8449d 100644 --- a/lib/gitlab/diff/file_collection/base.rb +++ b/lib/gitlab/diff/file_collection/base.rb @@ -17,7 +17,6 @@ module Gitlab @diffable = diffable @include_stats = diff_options.delete(:include_stats) - @diffs = diffable.raw_diffs(diff_options) @project = project @diff_options = diff_options @diff_refs = diff_refs @@ -25,8 +24,12 @@ module Gitlab @repository = project.repository end + def diffs + @diffs ||= diffable.raw_diffs(diff_options) + end + def diff_files - @diff_files ||= @diffs.decorate! { |diff| decorate_diff!(diff) } + @diff_files ||= diffs.decorate! { |diff| decorate_diff!(diff) } end def diff_file_with_old_path(old_path) |