From 3a001a929064f615eda8fe935c6359381db21ddd Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Mon, 21 Sep 2015 16:25:59 +0200 Subject: Fetch merge request ref if it is missing when visit MR page This will fix merge problem for merge requests between forks created before 8.0 Signed-off-by: Dmitriy Zaporozhets --- app/models/merge_request.rb | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'app/models/merge_request.rb') diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 93faa133875..eb468c6cd53 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -433,10 +433,22 @@ class MergeRequest < ActiveRecord::Base target_project.repository.fetch_ref( source_project.repository.path_to_repo, "refs/heads/#{source_branch}", - "refs/merge-requests/#{iid}/head" + ref_path ) end + def ref_path + "refs/merge-requests/#{iid}/head" + end + + def ref_is_fetched? + File.exists?(File.join(project.repository.path_to_repo, ref_path)) + end + + def ensure_ref_fetched + fetch_ref unless ref_is_fetched? + end + def in_locked_state begin lock_mr -- cgit v1.2.1