summaryrefslogtreecommitdiff
path: root/app/models/merge_request.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-04-09 15:09:29 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-04-09 15:09:29 +0000
commit209bd8cf1f542f6ba2a069b368a9187faa871e96 (patch)
tree6b77dc8183135b8316cc70c8dbc9c4e7c18cf05a /app/models/merge_request.rb
parenta9ced7da447785c57477b3d8dbccc73a78cface1 (diff)
downloadgitlab-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.rb26
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