From e22514fd4c54ec05e3272afdba5cba27d5b70516 Mon Sep 17 00:00:00 2001 From: Adam Niedzielski Date: Fri, 18 Nov 2016 14:33:42 +0100 Subject: Hide empty merge request diffs when comparing versions --- app/models/merge_request_diff.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'app/models/merge_request_diff.rb') diff --git a/app/models/merge_request_diff.rb b/app/models/merge_request_diff.rb index dd65a9a8b86..58a24eb84cb 100644 --- a/app/models/merge_request_diff.rb +++ b/app/models/merge_request_diff.rb @@ -11,6 +11,9 @@ class MergeRequestDiff < ActiveRecord::Base belongs_to :merge_request + serialize :st_commits + serialize :st_diffs + state_machine :state, initial: :empty do state :collected state :overflow @@ -22,8 +25,7 @@ class MergeRequestDiff < ActiveRecord::Base state :overflow_diff_lines_limit end - serialize :st_commits - serialize :st_diffs + scope :viewable, -> { without_state(:empty) } # All diff information is collected from repository after object is created. # It allows you to override variables like head_commit_sha before getting diff. -- cgit v1.2.1 From cb6f8cdfc23a18daf33288c95ae8badec63f53ad Mon Sep 17 00:00:00 2001 From: Adam Niedzielski Date: Thu, 1 Dec 2016 12:17:30 +0100 Subject: Replace references to MergeRequestDiff#commits with st_commits when we care only about the number of commits We do not have to instantiate all objects in this case. --- app/models/merge_request_diff.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'app/models/merge_request_diff.rb') diff --git a/app/models/merge_request_diff.rb b/app/models/merge_request_diff.rb index 58a24eb84cb..b8f36a2c958 100644 --- a/app/models/merge_request_diff.rb +++ b/app/models/merge_request_diff.rb @@ -127,11 +127,7 @@ class MergeRequestDiff < ActiveRecord::Base end def commits_sha - if @commits - commits.map(&:sha) - else - st_commits.map { |commit| commit[:id] } - end + st_commits.map { |commit| commit[:id] } end def diff_refs @@ -176,6 +172,10 @@ class MergeRequestDiff < ActiveRecord::Base CompareService.new.execute(project, head_commit_sha, project, sha, straight: straight) end + def commits_count + st_commits.count + end + private # Old GitLab implementations may have generated diffs as ["--broken-diff"]. -- cgit v1.2.1