summaryrefslogtreecommitdiff
path: root/app/models/merge_request.rb
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2017-11-28 18:01:09 +0000
committerRémy Coutable <remy@rymai.me>2017-11-28 18:01:09 +0000
commitbecf29e3ab3463a8a1f3c6ed7bbfd7d2dcc49ea0 (patch)
treea56172dc723850b3baf3452a575bb77c461dbe64 /app/models/merge_request.rb
parent2081650afc6417daa5933146c0922ff622a958b7 (diff)
parent3c6a4d63636ba41dad0ce63cf536761fc3b5ef64 (diff)
downloadgitlab-ce-becf29e3ab3463a8a1f3c6ed7bbfd7d2dcc49ea0.tar.gz
Merge branch '40530-merge-request-generates-wrong-diff-when-branch-and-tag-have-the-same-name' into 'master'
Resolve "Merge request generates wrong diff when branch and tag have the same name" Closes #40530 See merge request gitlab-org/gitlab-ce!15591
Diffstat (limited to 'app/models/merge_request.rb')
-rw-r--r--app/models/merge_request.rb18
1 files changed, 15 insertions, 3 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index e4d8f486c77..a6b10d5349c 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -364,16 +364,28 @@ class MergeRequest < ActiveRecord::Base
# We use these attributes to force these to the intended values.
attr_writer :target_branch_sha, :source_branch_sha
+ def source_branch_ref
+ return @source_branch_sha if @source_branch_sha
+ return unless source_branch
+
+ Gitlab::Git::BRANCH_REF_PREFIX + source_branch
+ end
+
+ def target_branch_ref
+ return @target_branch_sha if @target_branch_sha
+ return unless target_branch
+
+ Gitlab::Git::BRANCH_REF_PREFIX + target_branch
+ end
+
def source_branch_head
return unless source_project
- source_branch_ref = @source_branch_sha || source_branch
source_project.repository.commit(source_branch_ref) if source_branch_ref
end
def target_branch_head
- target_branch_ref = @target_branch_sha || target_branch
- target_project.repository.commit(target_branch_ref) if target_branch_ref
+ target_project.repository.commit(target_branch_ref)
end
def branch_merge_base_commit