summaryrefslogtreecommitdiff
path: root/app/models/merge_request.rb
diff options
context:
space:
mode:
authorAchilleas Pipinellis <axilleas@axilleas.me>2016-01-21 22:59:15 +0100
committerAchilleas Pipinellis <axilleas@axilleas.me>2016-01-21 22:59:15 +0100
commit308abc8db05f75da8f1cc66facb5e85bee5c69c4 (patch)
tree6b0acf3cbcf7036fb831381cfe195ad572d6a3c8 /app/models/merge_request.rb
parenta42fe49c8c953c0aa8ca20c8fb5a141447128894 (diff)
parentc176fb40a52d32edc54843a5b54884cbab1e67e1 (diff)
downloadgitlab-ce-308abc8db05f75da8f1cc66facb5e85bee5c69c4.tar.gz
Merge branch 'master' into housekeeping-doc
Diffstat (limited to 'app/models/merge_request.rb')
-rw-r--r--app/models/merge_request.rb19
1 files changed, 16 insertions, 3 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index c63d0c01653..41dd248d80a 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -180,6 +180,14 @@ class MergeRequest < ActiveRecord::Base
merge_request_diff ? merge_request_diff.first_commit : compare_commits.first
end
+ def diff_base_commit
+ if merge_request_diff
+ merge_request_diff.base_commit
+ else
+ self.target_project.commit(self.target_branch)
+ end
+ end
+
def last_commit_short_sha
last_commit.short_id
end
@@ -254,7 +262,7 @@ class MergeRequest < ActiveRecord::Base
end
def mergeable?
- return false unless open? && !work_in_progress?
+ return false unless open? && !work_in_progress? && !broken?
check_if_can_be_merged
@@ -477,8 +485,7 @@ class MergeRequest < ActiveRecord::Base
end
def target_sha
- @target_sha ||= target_project.
- repository.commit(target_branch).sha
+ @target_sha ||= target_project.repository.commit(target_branch).sha
end
def source_sha
@@ -517,4 +524,10 @@ class MergeRequest < ActiveRecord::Base
def ci_commit
@ci_commit ||= source_project.ci_commit(last_commit.id) if last_commit && source_project
end
+
+ def diff_refs
+ return nil unless diff_base_commit
+
+ [diff_base_commit, last_commit]
+ end
end