diff options
author | Achilleas Pipinellis <axilleas@axilleas.me> | 2016-01-21 22:59:15 +0100 |
---|---|---|
committer | Achilleas Pipinellis <axilleas@axilleas.me> | 2016-01-21 22:59:15 +0100 |
commit | 308abc8db05f75da8f1cc66facb5e85bee5c69c4 (patch) | |
tree | 6b0acf3cbcf7036fb831381cfe195ad572d6a3c8 /app/models/merge_request.rb | |
parent | a42fe49c8c953c0aa8ca20c8fb5a141447128894 (diff) | |
parent | c176fb40a52d32edc54843a5b54884cbab1e67e1 (diff) | |
download | gitlab-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.rb | 19 |
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 |