diff options
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/merge_request.rb | 6 | ||||
-rw-r--r-- | app/models/merge_request_diff.rb | 16 |
2 files changed, 12 insertions, 10 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 61845bf4036..859899175b0 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -211,6 +211,12 @@ class MergeRequest < ActiveRecord::Base end end + def diff_overflow? + return false unless merge_request_diff + + merge_request_diff.overflow? + end + # MRs created before 8.4 don't store a MergeRequestDiff#base_commit_sha, # but we need to get a commit for the "View file @ ..." link by deleted files, # so we find the likely one if we can't get the actual one. diff --git a/app/models/merge_request_diff.rb b/app/models/merge_request_diff.rb index b8f36a2c958..b0edcbfb782 100644 --- a/app/models/merge_request_diff.rb +++ b/app/models/merge_request_diff.rb @@ -234,28 +234,24 @@ class MergeRequestDiff < ActiveRecord::Base # and save it as array of hashes in st_diffs db field def save_diffs new_attributes = {} - new_diffs = [] if commits.size.zero? new_attributes[:state] = :empty else + new_attributes[:real_size] = compare.diffs.real_size diff_collection = compare.diffs(Commit.max_diff_options) - if diff_collection.overflow? - # Set our state to 'overflow' to make the #empty? and #collected? - # methods (generated by StateMachine) return false. - new_attributes[:state] = :overflow - end - - new_attributes[:real_size] = diff_collection.real_size - if diff_collection.any? new_diffs = dump_diffs(diff_collection) + new_attributes[:st_diffs] = new_diffs new_attributes[:state] = :collected end + + # Set our state to 'overflow' to make the #empty? and #collected? + # methods (generated by StateMachine) return false. + new_attributes[:state] = :overflow if diff_collection.overflow? end - new_attributes[:st_diffs] = new_diffs update_columns_serialized(new_attributes) end |