Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@gitlab.com>2017-10-26 13:33:54 +0300
committerSean McGivern <sean@gitlab.com>2017-11-02 19:09:56 +0300
commit4768a1e26f70263be24ac681042507fe01218b9b (patch)
tree782bed589e0e7f87b5b665a56a4986c7dd7fc9e8 /app/models/merge_request_diff.rb
parentd8299e320ec8c93311f678ed4dddab66528d021e (diff)
Set merge_request_diff_id on MR when creating
Once we migrate existing MRs to have this column, we will be able to get the latest diff for a single merge request more efficiently, and (more importantly) get all latest diffs for a collection of MRs efficiently.
Diffstat (limited to 'app/models/merge_request_diff.rb')
-rw-r--r--app/models/merge_request_diff.rb4
1 files changed, 4 insertions, 0 deletions
diff --git a/app/models/merge_request_diff.rb b/app/models/merge_request_diff.rb
index faf0b95f842..1eda0f9cbbd 100644
--- a/app/models/merge_request_diff.rb
+++ b/app/models/merge_request_diff.rb
@@ -48,6 +48,10 @@ class MergeRequestDiff < ActiveRecord::Base
# Collect information about commits and diff from repository
# and save it to the database as serialized data
def save_git_content
+ MergeRequest
+ .where('id = ? AND COALESCE(latest_merge_request_diff_id, 0) < ?', self.merge_request_id, self.id)
+ .update_all(latest_merge_request_diff_id: self.id)
+
ensure_commit_shas
save_commits
save_diffs