summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-07-15 16:52:50 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-07-15 16:52:50 +0200
commitcb6f34e367a58d277c58d7861343af6e08d5508a (patch)
tree24faebc087898663a6742dd74bd84cf16a93bedf
parent2a6f522cac52ead493aa9f69017e2d7780c342a1 (diff)
downloadgitlab-ce-cb6f34e367a58d277c58d7861343af6e08d5508a.tar.gz
Implement update of ref when merge request code is reloaded
-rw-r--r--app/models/merge_request_diff.rb27
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