diff options
author | Sean McGivern <sean@gitlab.com> | 2017-10-26 11:33:54 +0100 |
---|---|---|
committer | Sean McGivern <sean@gitlab.com> | 2017-11-02 14:03:25 +0000 |
commit | 60536ef670a40e26a1250ab55c105e1b67c8d7cc (patch) | |
tree | 0b1edfc345e2a01bb3b0a893553cfde7708842c2 | |
parent | 8fdb8c6eecb2ef58484c541a08c1ce8524a47a65 (diff) | |
download | gitlab-ce-37631-add-a-merge_request_diff_id-column-to-merge_requests.tar.gz |
Set merge_request_diff_id on MR when creating37631-add-a-merge_request_diff_id-column-to-merge_requests
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.
-rw-r--r-- | app/models/merge_request_diff.rb | 4 | ||||
-rw-r--r-- | changelogs/unreleased/37631-add-a-merge_request_diff_id-column-to-merge_requests.yml | 2 | ||||
-rw-r--r-- | lib/gitlab/import_export/import_export.yml | 2 |
3 files changed, 6 insertions, 2 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 diff --git a/changelogs/unreleased/37631-add-a-merge_request_diff_id-column-to-merge_requests.yml b/changelogs/unreleased/37631-add-a-merge_request_diff_id-column-to-merge_requests.yml index 1a8632f7450..a7127f49c16 100644 --- a/changelogs/unreleased/37631-add-a-merge_request_diff_id-column-to-merge_requests.yml +++ b/changelogs/unreleased/37631-add-a-merge_request_diff_id-column-to-merge_requests.yml @@ -1,5 +1,5 @@ --- -title: Make finding most recent merge request diffs more efficient +title: Add a latest_merge_request_diff_id column to merge_requests merge_request: 15035 author: type: performance diff --git a/lib/gitlab/import_export/import_export.yml b/lib/gitlab/import_export/import_export.yml index 57678ffdd2a..26665d7d926 100644 --- a/lib/gitlab/import_export/import_export.yml +++ b/lib/gitlab/import_export/import_export.yml @@ -113,7 +113,7 @@ excluded_attributes: - :milestone_id - :ref_fetched - :merge_jid - - :merge_request_diff_id + - :latest_merge_request_diff_id award_emoji: - :awardable_id statuses: |