diff options
author | Oswaldo Ferreira <oswaldo@gitlab.com> | 2018-09-19 15:26:28 +0300 |
---|---|---|
committer | Nick Thomas <nick@gitlab.com> | 2018-09-19 15:26:28 +0300 |
commit | 5dce096cf8b645d430bfdce8add8a577b595dc23 (patch) | |
tree | 69ac2bf5373bffd1e869d9b1c9f54e2c912cb767 /app | |
parent | 3172de0df3801125c23d1811a53d1467dec45645 (diff) |
Use standalone diff stats RPC on every comparison view
Diffstat (limited to 'app')
-rw-r--r-- | app/models/diff_note.rb | 2 | ||||
-rw-r--r-- | app/services/merge_requests/reload_diffs_service.rb | 10 | ||||
-rw-r--r-- | app/workers/new_merge_request_worker.rb | 2 |
3 files changed, 10 insertions, 4 deletions
diff --git a/app/models/diff_note.rb b/app/models/diff_note.rb index 716cf6574d3..047d353b4b5 100644 --- a/app/models/diff_note.rb +++ b/app/models/diff_note.rb @@ -131,7 +131,7 @@ class DiffNote < Note # As an extra benefit, the returned `diff_file` already # has `highlighted_diff_lines` data set from Redis on # `Diff::FileCollection::MergeRequestDiff`. - noteable.diffs(paths: original_position.paths, expanded: true).diff_files.first + noteable.diffs(original_position.diff_options).diff_files.first else original_position.diff_file(self.project.repository) end diff --git a/app/services/merge_requests/reload_diffs_service.rb b/app/services/merge_requests/reload_diffs_service.rb index c350b14d12b..b4d48fe92ad 100644 --- a/app/services/merge_requests/reload_diffs_service.rb +++ b/app/services/merge_requests/reload_diffs_service.rb @@ -31,7 +31,7 @@ module MergeRequests def clear_cache(new_diff) # Executing the iteration we cache highlighted diffs for each diff file of # MergeRequestDiff. - new_diff.diffs_collection.write_cache + cacheable_collection(new_diff).write_cache # Remove cache for all diffs on this MR. Do not use the association on the # model, as that will interfere with other actions happening when @@ -39,9 +39,15 @@ module MergeRequests MergeRequestDiff.where(merge_request: merge_request).each do |merge_request_diff| next if merge_request_diff == new_diff - merge_request_diff.diffs_collection.clear_cache + cacheable_collection(merge_request_diff).clear_cache end end # rubocop: enable CodeReuse/ActiveRecord + + def cacheable_collection(diff) + # There are scenarios where we don't need to request Diff Stats. + # Mainly when clearing / writing diff caches. + diff.diffs(include_stats: false) + end end end diff --git a/app/workers/new_merge_request_worker.rb b/app/workers/new_merge_request_worker.rb index 62f9d9b6f57..fa48c1b29a8 100644 --- a/app/workers/new_merge_request_worker.rb +++ b/app/workers/new_merge_request_worker.rb @@ -10,7 +10,7 @@ class NewMergeRequestWorker EventCreateService.new.open_mr(issuable, user) NotificationService.new.new_merge_request(issuable, user) - issuable.diffs.write_cache + issuable.diffs(include_stats: false).write_cache issuable.create_cross_references!(user) end |