summaryrefslogtreecommitdiff
path: root/app/models/merge_request_diff.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/merge_request_diff.rb')
-rw-r--r--app/models/merge_request_diff.rb22
1 files changed, 10 insertions, 12 deletions
diff --git a/app/models/merge_request_diff.rb b/app/models/merge_request_diff.rb
index 8a48f78dbd4..6f01a589d1c 100644
--- a/app/models/merge_request_diff.rb
+++ b/app/models/merge_request_diff.rb
@@ -162,20 +162,18 @@ class MergeRequestDiff < ActiveRecord::Base
def compare_result
@compare_result ||=
begin
- source_sha = merge_request.source_project.commit(source_branch).sha
+ # Update ref if merge request is from fork
+ merge_request.fetch_ref if merge_request.for_fork?
- merge_request.target_project.repository.fetch_ref(
- merge_request.source_project.repository.path_to_repo,
- "refs/heads/#{merge_request.source_branch}",
- "refs/merge-requests/#{merge_request.id}/head"
- )
+ # Get latest sha of branch from source project
+ source_sha = merge_request.source_project.commit(source_branch).sha
- CompareService.new.execute(
- merge_request.author,
- merge_request.target_project,
- source_sha,
- merge_request.target_project,
- merge_request.target_branch,
+ Gitlab::CompareResult.new(
+ Gitlab::Git::Compare.new(
+ merge_request.target_project.repository.raw_repository,
+ merge_request.target_branch,
+ source_sha,
+ )
)
end
end