summaryrefslogtreecommitdiff
path: root/app/models/merge_request.rb
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2017-09-22 17:46:24 +0200
committerRémy Coutable <remy@rymai.me>2017-10-05 10:48:25 +0200
commit67de21c15bd8bb24667a4d8bfa259406165a909e (patch)
treef445198728e3c86ef92e02268e38c1294fe95c6d /app/models/merge_request.rb
parent43b75b38086c88894fca4b6c1c9e68c111c4e546 (diff)
downloadgitlab-ce-67de21c15bd8bb24667a4d8bfa259406165a909e.tar.gz
Move `fetch_ref` from MergeRequestDiff#ensure_commit_shas to MergeRequest
MergeRequest#create_merge_request_diff and MergeRequest#reload_diff are the only places where we generate a new MR diff so that's where we should fetch the ref. This also ensures that the ref is not fetched when we call merge_request.merge_request_diffs.create in Github::Import#fetch_pull_requests. Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'app/models/merge_request.rb')
-rw-r--r--app/models/merge_request.rb3
1 files changed, 3 insertions, 0 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 0ba00d447e8..086226618e6 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -415,6 +415,8 @@ class MergeRequest < ActiveRecord::Base
end
def create_merge_request_diff
+ fetch_ref
+
# n+1: https://gitlab.com/gitlab-org/gitlab-ce/issues/37435
Gitlab::GitalyClient.allow_n_plus_1_calls do
merge_request_diffs.create
@@ -462,6 +464,7 @@ class MergeRequest < ActiveRecord::Base
return unless open?
old_diff_refs = self.diff_refs
+
create_merge_request_diff
MergeRequests::MergeRequestDiffCacheService.new.execute(self)
new_diff_refs = self.diff_refs