summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarin Jankovski <marin@gitlab.com>2018-02-08 11:00:21 +0000
committerMarin Jankovski <marin@gitlab.com>2018-02-08 11:00:21 +0000
commit297b075bd7d3f6a2703ee8dd6c30ac05400e31a3 (patch)
treef6a40ec5e837d56f2f97cd638e6554f2b3717aa6
parent2d3867d0967fd5fa27683ef8b7eb846c5c5b57a1 (diff)
parent9a323c7e1f806bca099158e29561e0958baa06a6 (diff)
downloadgitlab-ce-297b075bd7d3f6a2703ee8dd6c30ac05400e31a3.tar.gz
Merge branch 'sh-fix-rebase-in-progress-nplus-one' into 'master'
Memoize MergeRequest#rebase_in_progress? to prevent N+1 queries in Gitaly Closes gitlab-ee#4857 See merge request gitlab-org/gitlab-ce!16990
-rw-r--r--app/models/merge_request.rb8
1 files changed, 5 insertions, 3 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index d025062f562..5bec68ce4f6 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -158,10 +158,12 @@ class MergeRequest < ActiveRecord::Base
end
def rebase_in_progress?
- # The source project can be deleted
- return false unless source_project
+ strong_memoize(:rebase_in_progress) do
+ # The source project can be deleted
+ next false unless source_project
- source_project.repository.rebase_in_progress?(id)
+ source_project.repository.rebase_in_progress?(id)
+ end
end
# Use this method whenever you need to make sure the head_pipeline is synced with the