From cb6f34e367a58d277c58d7861343af6e08d5508a Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Wed, 15 Jul 2015 16:52:50 +0200 Subject: Implement update of ref when merge request code is reloaded --- app/models/merge_request_diff.rb | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/app/models/merge_request_diff.rb b/app/models/merge_request_diff.rb index f3a1c91e75c..8a48f78dbd4 100644 --- a/app/models/merge_request_diff.rb +++ b/app/models/merge_request_diff.rb @@ -160,14 +160,23 @@ class MergeRequestDiff < ActiveRecord::Base private def compare_result - source_sha = merge_request.source_project.commit(source_branch).sha - - @compare_result ||= CompareService.new.execute( - merge_request.author, - merge_request.target_project, - source_sha, - merge_request.target_project, - merge_request.target_branch, - ) + @compare_result ||= + begin + source_sha = merge_request.source_project.commit(source_branch).sha + + 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" + ) + + CompareService.new.execute( + merge_request.author, + merge_request.target_project, + source_sha, + merge_request.target_project, + merge_request.target_branch, + ) + end end end -- cgit v1.2.1