diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-07-15 16:52:50 +0200 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-07-15 16:52:50 +0200 |
commit | cb6f34e367a58d277c58d7861343af6e08d5508a (patch) | |
tree | 24faebc087898663a6742dd74bd84cf16a93bedf | |
parent | 2a6f522cac52ead493aa9f69017e2d7780c342a1 (diff) | |
download | gitlab-ce-cb6f34e367a58d277c58d7861343af6e08d5508a.tar.gz |
Implement update of ref when merge request code is reloaded
-rw-r--r-- | app/models/merge_request_diff.rb | 27 |
1 files 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 |