diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-09 15:09:29 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-09 15:09:29 +0000 |
commit | 209bd8cf1f542f6ba2a069b368a9187faa871e96 (patch) | |
tree | 6b77dc8183135b8316cc70c8dbc9c4e7c18cf05a /app/models/merge_request.rb | |
parent | a9ced7da447785c57477b3d8dbccc73a78cface1 (diff) | |
download | gitlab-ce-209bd8cf1f542f6ba2a069b368a9187faa871e96.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/models/merge_request.rb')
-rw-r--r-- | app/models/merge_request.rb | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 2edb1a45100..b9acb539404 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -555,22 +555,28 @@ class MergeRequest < ApplicationRecord end end + def diff_stats + return unless diff_refs + + strong_memoize(:diff_stats) do + project.repository.diff_stats(diff_refs.base_sha, diff_refs.head_sha) + end + end + def diff_size # Calling `merge_request_diff.diffs.real_size` will also perform # highlighting, which we don't need here. - merge_request_diff&.real_size || diffs.real_size + merge_request_diff&.real_size || diff_stats&.real_size || diffs.real_size end def modified_paths(past_merge_request_diff: nil) - diffs = if past_merge_request_diff - past_merge_request_diff - elsif compare - compare - else - self.merge_request_diff - end - - diffs.modified_paths + if past_merge_request_diff + past_merge_request_diff.modified_paths + elsif compare + diff_stats&.paths || compare.modified_paths + else + merge_request_diff.modified_paths + end end def new_paths |